Javascript 从谷歌方向服务清除标记
我正在使用Google Direction服务检索路线的lat+lng,然后将latlon传递到php文件,并通过xml文件返回标记 这一切都很好,除了我不能清除旧标记时,我要求一个新的路线。下面的代码显示了如何使用jQuery从xml文件中获取标记。下面的代码显示了我试图用来清除路由(有效)和旧标记(无效)的函数 非常感谢你的帮助Javascript 从谷歌方向服务清除标记,javascript,google-maps,google-maps-markers,Javascript,Google Maps,Google Maps Markers,我正在使用Google Direction服务检索路线的lat+lng,然后将latlon传递到php文件,并通过xml文件返回标记 这一切都很好,除了我不能清除旧标记时,我要求一个新的路线。下面的代码显示了如何使用jQuery从xml文件中获取标记。下面的代码显示了我试图用来清除路由(有效)和旧标记(无效)的函数 非常感谢你的帮助 //RETURN DATA FOR PLACE MARKERS jQuery.get("MYXMLFILE", function(data) { jQuer
//RETURN DATA FOR PLACE MARKERS
jQuery.get("MYXMLFILE", function(data) {
jQuery(data).find("marker").each(function() {
var eachMarker = jQuery(this);
var markerCoords = new google.maps.LatLng(
parseFloat(eachMarker.find("Lat").text()),
parseFloat(eachMarker.find("Lng").text())
);
var header = eachMarker.find("title").text();
var content = eachMarker.find("Content").text();
var wxicon = eachMarker.find("icon").text();
//---------------------------------------------
var marker = new google.maps.Marker({
position: markerCoords,
map: map,
icon: wxicon,
animation: google.maps.Animation.DROP,
title: header,
});
gmarkers.push(marker); // store the reference
});
});
//CLEAR OLD ROUTE + CLEAR MARKERS
function deleteOverlays() {
directionsDisplay.setDirections({routes: []});
gmarker.setMap(null);
gmarkers = [];
}
每次创建标记时,将其添加到markerary
for (i = 0; i < locations.length; i++) {
marker[i] = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
icon: icoImg,
map: map,
shadow: flagIcon_shadow,
title: locations[i][0]
});
markersArray.push(marker[i]);
}
在你的情况下,使用这个
function deleteOverlays() {
if (gmarkers) {
for (i in gmarkers) {
gmarkers[i].setMap(null);
}
gmarkers.length = 0;
}
}
您好,谢谢,您从何处获得位置。循环的长度?^如果这是您问题的答案,请标记为答案:)我会在它工作后立即提供!-我添加了你的循环,但它没有显示任何内容!我想我遇到的麻烦是,将标记添加到markerarray
gmarkers
必须是全局的,请将其定义为var gmarkers=[]代码>代码顶部
// Deletes all markers in the array by removing references to them
function deleteOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
function deleteOverlays() {
if (gmarkers) {
for (i in gmarkers) {
gmarkers[i].setMap(null);
}
gmarkers.length = 0;
}
}