【发布时间】:2018-09-01 05:14:18
【问题描述】:
我有一个Google Maps Clustering 的工作代码笔演示。我正在尝试添加自定义 html 元素标记,这样我就可以拥有像这样的动态文本:
但是,当我将自定义 html 元素标记脚本(它自己工作)添加到我的标记集群脚本时,它会中断。
这是我的脚本。如果您在损坏的部分(第 69 - 89 行)发表评论 - 它会停止工作。
// WORKING
function initMap() {
var map = new google.maps.Map(document.getElementById("map"), {
zoom: 12,
center: {
lat: 37.773972,
lng: -122.431297
},
gestureHandling: "greedy",
disableDefaultUI: true
});
var labels = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var markers = locations.map(function(location, i) {
return new google.maps.Marker({
position: location,
label: labels[i % labels.length]
});
});
var markerCluster = new MarkerClusterer(map, markers, {
imagePath:
"https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m"
});
}
var locations = [
{
lat: 37.77,
lng: -122.44
},
{
lat: 37.78,
lng: -122.45
},
{
lat: 37.79,
lng: -122.42
},
{
lat: 37.72,
lng: -122.43
},
{
lat: 37.74,
lng: -122.42
},
{
lat: 37.75,
lng: -122.41
},
{
lat: 37.75,
lng: -122.43
},
{
lat: 37.79,
lng: -122.43
},
{
lat: 37.78,
lng: -122.43
}
];
// BROKEN
// HTMLMarker.prototype = new google.maps.OverlayView();
// HTMLMarker.prototype.onRemove = function() {};
// HTMLMarker.prototype.onAdd = function() {
// div = document.createElement("DIV");
// div.className = "marker";
// div.innerHTML = "$500";
// var panes = this.getPanes();
// panes.overlayImage.appendChild(div);
// };
// HTMLMarker.prototype.draw = function() {
// var overlayProjection = this.getProjection();
// var position = overlayProjection.fromLatLngToDivPixel(this.pos);
// var panes = this.getPanes();
// panes.overlayImage.style.left = position.x + "px";
// panes.overlayImage.style.top = position.y + "px";
// };
// var htmlMarker = new HTMLMarker(37.77, -122.43);
// htmlMarker.setMap(map);
我可以让自定义标记单独工作,也可以让标记聚类单独工作,但不能一起工作。
【问题讨论】:
标签: google-maps google-maps-api-3 google-maps-markers markerclusterer