Javascript JavaFX:Google地图在网页中-移动一个标记会留下一个旧标记
我有一个在JavaFXWebView中运行GoogleMapsAPI实例的应用程序,我正在尝试允许用户移动地图标记 我尝试了以下方法:Javascript JavaFX:Google地图在网页中-移动一个标记会留下一个旧标记,javascript,java,google-maps,google-maps-api-3,javafx,Javascript,Java,Google Maps,Google Maps Api 3,Javafx,我有一个在JavaFXWebView中运行GoogleMapsAPI实例的应用程序,我正在尝试允许用户移动地图标记 我尝试了以下方法: google.maps.event.addListener(map, 'click', function(event) { marker.setPosition(event.latLng); } 以及: google.maps.event.addListener(map, 'click', function(event) { marker.setMap
google.maps.event.addListener(map, 'click', function(event) {
marker.setPosition(event.latLng);
}
以及:
google.maps.event.addListener(map, 'click', function(event) {
marker.setMap(null);
marker = null;
marker = new google.maps.Marker({
position:event.latLng,
map: map
});
}
这两种实现都会产生相同的问题:单击地图会在新位置创建一个标记,但旧位置标记也会保留在屏幕上。移动地图并强制重新加载带有旧标记的部分将删除该标记,这使我相信这不是实现问题,而是web浏览器处理该标记时的一个错误。有没有办法解决这个问题,这样就不会留下重复的标记?我认为这是代码实现的问题。试试这个。在上面测试了一下,效果非常好
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -25.363882, lng: 131.044922 }
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: true,
});
google.maps.event.addListener(map, 'click', function(e) {
updateMarkerPosition(marker,e);
});
}
function updateMarkerPosition(marker, e){
marker.setPosition(e.latLng);
}
如果JavaFX应用程序中没有体现这种无缝执行,那么问题就不是googlemapsapi。我认为这是代码实现的问题。试试这个。在上面测试了一下,效果非常好
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -25.363882, lng: 131.044922 }
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
draggable: true,
});
google.maps.event.addListener(map, 'click', function(e) {
updateMarkerPosition(marker,e);
});
}
function updateMarkerPosition(marker, e){
marker.setPosition(e.latLng);
}
如果JavaFX应用程序中没有体现这种无缝执行,那么问题不在于googlemapsapi。谢谢!这似乎起了作用-将标记设置为draggable将其修复。谢谢!这似乎起到了作用——将标记设置为draggable可以修复它。