gpt4 book ai didi

javascript - 如何删除标记 googlemap $.getjson

转载 作者:行者123 更新时间:2023-12-02 17:52:53 25 4
gpt4 key购买 nike

我有一个大问题!!我通过 $.getJSON 动态放置新标记但我还想创建一个函数来删除 map 上的所有标记。这是因为我想在使用函数 xx3 动态放置新标记之前使用此函数删除标记

     <script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?keyenter code here=true">
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
var map;
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(40.76455136505513, -73.98056030273438),
zoom: 13,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body onload="initialize()">
<div id='map-ui'>
<ul>
<li><a onclick="javascript:xx3()" id='find here'>FIND HERE</a></li>
<li><a onclick="javascript:muovi()" id='filter-foodx'>skate</a></li>
<li><a onclick="javascript:xx4()" id='filter-foodx'>shop</a></li>
<li><a onclick="javascript:tutto()" class="active" id='filter-alxl'>show all events</a></li>
</ul>
</div>
<div id="map_canvas" style="width:100%; height:100%"></div>
<script type="text/javascript">
$(document).ready(function() {
$.getJSON("/vaij.php?la=40.76455136505513&lg=-73.98056030273438", function(json1) {
$.each(json1, function(key, data) {
var latLng = new google.maps.LatLng(data.la, data.lg);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
title: data.namesp
});
marker.setMap(map);
});
});
});
</script>
<script>

function clearMarkers() {
new google.maps.Marker(null);
}

function muovi() {

var latLng = new google.maps.LatLng(45.59426285330727 , 8.918224610396585); //Makes a latlng
map.panTo(latLng); //Make map global
}



function xx3() {




$.getJSON("/vaij.php?la=45.59426285330727&lg=8.918224610396585", function(json1) {
var markers = [];
$.each(json1, function(key, data) {
var latLng = new google.maps.LatLng(data.la, data.lg);
// Creating a marker and putting it on the map
var marker = new google.maps.Marker({
position: latLng,
title: data.namesp
});
marker.setMap(map);
});
});

}

function xx4() {
map.clearOverlays();


var markersArray = [];

function clearOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
}
}
}

</script>

最佳答案

使用您发布的代码作为答案并如评论之一所述:创建一个全局标记数组。将每个标记添加到 inix 函数中的数组中。循环遍历 deleteMarkers 函数中的标记数组,对于每个标记,使用 setMap(null) 将其删除。

所以,在你的职能之外:

var markers = [];

在 inix 函数中(创建标记后):

markers.push(marker);

在deleteMarkers函数中:

for (var i=0; i<markers.length; i++) {

markers[i].setMap(null);
}

关于javascript - 如何删除标记 googlemap $.getjson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21207501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com