【发布时间】:2017-06-09 00:29:04
【问题描述】:
嗨,
我正在使用过滤器和标记聚类器在 google maps API v3(使用 Javascript)上制作交互式地图。
过滤器正在工作
标记聚类器也在工作
但是当我将标记聚类器和过滤器放在一起时,我遇到了一些麻烦。
在这里我放了一些关于我的问题的屏幕以便更容易理解: 没有任何过滤器的地图: • http://prnt.sc/dzlzhk 过滤后: • http://prnt.sc/dzlzog
标记聚类器:
var markerCluster = new MarkerClusterer(map, markers,
{imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
在地图上加载标记的功能:
function loadMarkers(personList) {
var people = ( typeof personList !== 'undefined' ) ? personList : personData;
var j = 1;
for( i=0; i < people.length; i++ ) {
var person = people[i];
if( markerList.indexOf(person.id) !== -1 ) continue;
var lat = person.lat,
lng = person.lng,
markerId = person.id;
var infoWindow = new google.maps.InfoWindow({
maxWidth: 400
});
var marker = new google.maps.Marker({
position: new google.maps.LatLng( lat, lng ),
title: person.nom,
markerId: markerId,
icon: markerLocation,
map: map
});
markers[markerId] = marker;
markerList.push(person.id);
从地图中删除标记的功能:
function removePersonMarker(id) {
if( markers[id] ) {
markers[id].setMap(null);
loc = markerList.indexOf(id);
if (loc > -1) markerList.splice(loc, 1);
delete markers[id];
}
}
过滤标记的功能:
function filterByString( dataProperty, value ) {
var people = [];
for( var i=0; i < personData.length; i++ ) {
var person = personData[i];
if( person[dataProperty] == value ) {
people.push( person );
} else {
removePersonMarker( person.id );
}
}
return people;
}
当我使用过滤器时,标记聚类器未更新,并且标记在地图上显示而不被聚类。
我尝试了 Stack Overflow 上的所有解决方案,但都没有奏效。
感谢任何帮助。如果它可以帮助我可以发布部分源代码。谢谢。
【问题讨论】:
-
Here I put some screens- 一张图片胜过一千个字……但程序员不是……如果您需要实际帮助,您需要提供实际代码 -
好了,完成了
标签: javascript google-maps-api-3 filter markerclusterer