google-maps - Google Maps Marker Clusterer 不显示集群图标
问题描述
我有一个带有一组标记的谷歌地图。我正在尝试将 MarkerClusterer 添加到它以简化视图。总的来说,从我在网上看到的情况来看,这样做应该很容易,但是当我尝试时,我的地图没有显示任何标记、集群或任何东西。我的代码如下:
function calculateCenter() {
center = map.getCenter()
}
let center
let worldCenter = new window.google.maps.LatLng(32.249974, 5.800781)
let mapOptions = {
center: worldCenter,
zoom: 3,
scrollwheel: false
}
let map = new google.maps.Map(document.querySelector('.banner--map--parks'), mapOptions)
let infoWindow = new google.maps.InfoWindow()
let markers = []
map.addListener('idle', _ => {
calculateCenter()
})
fetch('/api/parks.json')
.then(response => response.json())
.then(data => {
data.forEach(park => {
if (park.lat && park.lng) {
let title = park.name
let position = new google.maps.LatLng(park.lat, park.lng)
let icon = 'https://raw.githubusercontent.com/Concept211/Google-Maps-Markers/master/images/marker_blue.png'
let marker = new google.maps.Marker({
position: position
title: title,
icon: icon,
// map: map
})
let parkIWContent = '<div class="iw"><a href="/parks/' + park.id + '">' + park.name + '</a></div>'
marker.addListener('click', (function(marker, parkIWContent) {
return function() {
infoWindow.setContent(parkIWContent);
infoWindow.open(map, marker);
// map.panTo(new google.maps.LatLng(park.lat, park.lng))
};
})(marker, parkIWContent))
markers.push(marker)
}
})
})
console.log(markers)
let markerCluster = new MarkerClusterer(map, markers)
map.addListener("click", _ => {
infoWindow.close()
})
如您所见,在某一时刻,我确实输出了标记数组,它们都显示在控制台中,但仍然无法在地图上显示。
任何人都可以发现可能导致此问题的代码问题吗?
谢谢
解决方案
我实际上已经设法解决了这个问题。我需要将 Marker Clusterer 移动到内部.then
才能正常工作。
推荐阅读
- sql - 如何从自动完成文本框中检索数据
- reactjs - 如何更新 redux 存储中的对象?
- python - /accounts/signup/ 'str' 对象的 AttributeError 没有属性 'add'
- sql-server - 如何修复 SQL Server 中的(将表达式转换为数据类型日期时间的算术溢出错误)错误
- java - BufferedReader 读取的字节数
- multithreading - 多线程 Firebase 功能
- subscription - 使用 ion-router-outlet 时,ionic4 Angular 7 查询参数订阅不会在每次更改时触发
- sql-server - 如何解释 SQL Server 错误?
- html - IOS设备上的表格不能滚动?
- java - 用工厂模式实现反射