我在谷歌地图上使用淘汰赛javascrit,但我无法在地图上清除标记,我在那里收到错误消息,错误跟随
> Ripple :: Environment Warming Up (Tea. Earl Gray. Hot.) ripple.js:37
> web :: Initialization Finished (Make it so.) ripple.js:37 Uncaught
> TypeError: Object [object Object] has no method 'dxmap' Shops.js:70
> eula response: true ripple.js:47 Uncaught TypeError: Object [object
> Object] has no method 'dxmap' Shops.js:70 Uncaught TypeError: Object
> #<Object> has no method 'setMap' Shops.js:137
下面我的代码可以帮助我
function FetchNearestShops(latitud,longitud)
{
$.ajax({
type: 'POST',
async:false,
contentType: 'application/json',
dataType: 'jsonp',
url: url + "/GetNearestShop",
//data: { Latitude: 9.998472, Longitude: 76.308059 },
data: { Latitude: latitud, Longitude: longitud },
success: function (data) {
loc.removeAll();
productsNear.removeAll();
$.map(data, function (item) {
loc.push({ label: item.ShopName, location: [item.Latitude, item.Longitude] });
//productsNear.push({ Name: item.ShopName, IsFavorite: false, Address: "", id: item.ShopId, Image: "mockcontent/shopimages/1.jpg" });
productsNear.push({ Name: item.ShopName, IsFavorite: item.Isfavourite, Address: item.Address, id: item.ShopId, Image: item.ImageUrl });
});
alert();
viewModel.options.markers = loc;
},
error: function () {
alert("error");
}
});
}
function SetLocation() {
var geocoder = new google.maps.Geocoder();
//var address = "ernakulam";
//alert(viewModel.options.location());
geocoder.geocode({ 'address': txtAddress() }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var latitude = results[0].geometry.location.lat();
var longitude = results[0].geometry.location.lng();
ClearMap();
FetchNearestShops(latitude, longitude);
}
});
}
function ClearMap()
{
var markers = viewModel.options.markers();
for (var i = 0; i < markers.length; i++) {
markers[i];
markers.setMap(null);
}
markers;
}
答案 0 :(得分:3)
我认为您的ClearMap()
功能循环存在问题。尝试
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
取而代之的是markers.setMap(null);
。
此外,我不确定你的markers
是什么,它是Google标记的正确集合。
这个集合应该是这样的:
markers[i] = new google.maps.Marker({
position: new google.maps.LatLng('some latitude', 'some longitude'),
map: map, //object of Google Map
name: 'Marker Name'
});