google-maps - 谷歌地图标记聚类不适用于 infoWindow 和 fitBounds
问题描述
我正在尝试创建一个谷歌地图,它具有 a)点击时的 infoWindows,b)加载时的 fitBounds 和 c)标记的聚类。
我已经能够让前两个工作,但无法弄清楚为什么集群不工作。任何指针将不胜感激。谢谢
这是我的代码:
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: {
lat: -31.730513,
lng: 132.008632
}
});
setMarkers(map);
}
// markers variable
var locations = [
['Cairns', -16.978165, 145.712778, 6],
['Bondi Beach', -33.890542, 151.274856, 5],
['Wollangong', -34.439390, 150.796039, 4],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Mandurah', -32.557420, 115.783668, 2],
['Perth', -32.080768, 115.778525, 1]
];
// info window variable
var locInfo = [
['<div class="map-text"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. </p></div>'],
];
// Adds markers to the map.
function setMarkers(map) {
var bounds = new google.maps.LatLngBounds();
for (var i = 0; i < locations.length; i++) {
var marks = locations[i];
var myLatLng = new google.maps.LatLng(marks[1], marks[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
});
bounds.extend(myLatLng);
var infoWindow = new google.maps.InfoWindow(),
marker, i;
// Add info window to marker
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infoWindow.setContent(locInfo[i][0]);
infoWindow.open(map, marker);
}
})(marker, i));
}
map.fitBounds(bounds);
var markerCluster = new MarkerClusterer(map);
}
</script>
解决方案
我不明白你想要什么。但是markerClustering代码在下面。
//original code
//var markerCluster = new MarkerClusterer(map);
var markers = locations.map(function(location, i) {
return new google.maps.Marker({
position: new google.maps.LatLng(marks[1], marks[2])
});
});
var markerCluster = new MarkerClusterer(map, markers, {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
推荐阅读
- ios - 保存 UITableView 的用户输入数据
- scala - 未正确推断多折叠返回类型
- python - 如何将 __len__ 添加到其数据类型定义中没有 __len__ 的对象?
- json - 如何将紧凑的 Json 转换为漂亮的打印代号一
- c# - Xamarin - SignalR 挂在连接上
- php - Laravel:第 342 行的非法字符串偏移“文件”,文件 Illuminate/Mail/Mailable.php
- jsonpath - How to concatenate constant string with jsonpath
- javascript - How to keep cookies values saved in angular 2
- three.js - How to make camera update on zoom
- c++ - 具有重载 << 运算符的简单模板类失败,“模板 ID 的使用无效”