我正在使用gmaps.js(https://github.com/hpneo/gmaps)
我想在点击地图上的某个位置时在地图上添加标记。如果用户点击第二个位置,则前一个标记应移至新位置,或者删除并替换为新标记。
现在确定Lib是否支持此功能。
http://bakasura.in/startupsradar/add.html
$(document).ready(function () {
var map = new GMaps({
div: '#map',
lat: 13.00487,
lng: 77.576729,
zoom: 13
});
map.addMarker({
lat: 13.00487,
lng: 77.576729,
title: 'Mink7',
infoWindow: {
content: 'HTML Content'
}
});
/*
GMaps.geolocate({
success: function (position) {
map.setCenter(position.coords.latitude, position.coords.longitude);
},
error: function (error) {
alert('Geolocation failed: ' + error.message);
},
not_supported: function () {
alert("Your browser does not support geolocation");
},
always: function () {
//alert("Done!");
}
});
*/
});
答案 0 :(得分:3)
google.maps.event.addListener(_map, "click", function(event) {
if(_marker) {
_marker.setPosition(event.latLng);
} else {
_marker = new google.maps.Marker({
position: event.latLng,
map: _map,
title: "myTitle"
});
}
});
刚看到其他答案,如果你不想每次创建一个标记,请使用它。
_marker
应该是一个全局变量。
答案 1 :(得分:2)
就我个人而言,我使用全局变量作为标记(或者如果我需要更多标记并且我想稍后访问它们的数组),那么我可以删除它并在其他地方重新创建它。
// instantiate your var map
// ...
google.maps.event.addListener(map, "click", function(event) {
if(markermap) {
markermap.setMap(null);
}
markermap = new google.maps.Marker({
position: event.latLng,
map: myMap,
title: "myTitle"
});
});