我的网站上有一张地图这张地图上有很多带有infoWindows的标记。对于每个infoWindow,我使用自定义刀片结果,如果映射上有太多标记,那么在页面上加载initDOM需要花费很多时间。
我有和想法加载这个窗口只有在标记点击。
有人能帮我吗?
尝试以下代码:
function makeInfoWindowEvent(map, infowindow, marker) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map, marker);
});
}
找到了一个很好的解决方案。也许它对某些人有用。
获取所有
var locations = [
@if(count($trainings) > 0)
@foreach($trainingsas $item)
@if($item->p_lat && $item->p_lng)
{
lat: {{$item->p_lat}},
lng: {{$item->p_lng}},
id: {{ $item->p_id }}
},
@endif
@endforeach
@endif
];
然后,在映射地图上的所有标记时,为每个标记添加一个侦听器
google.maps.event.addListener(marker, 'click', function (evt) {
var id = marker.get("id");
$.ajax({
url: "{{ route('getInfoWindow') }}",
data:{
id: id
},
success: function(data) {
console.log(data);
infoWin.setContent(data);
infoWin.open(map, marker);
}
});
这就是我们所需要的。在后台,我们用它获取模型,并用我们的视图渲染输出!