繁体   English   中英

JavaFX:WebPane中的Google Maps-移动标记会留下旧标记

[英]JavaFX: Google Maps in a WebPane - Moving a Marker leaves old one behind

我有一个在JavaFX WebView中运行Google Maps API实例的应用程序,并试图允许用户在周围移动地图标记。

我尝试了以下方法:

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浏览器处理它的错误。 有什么办法可以解决此问题,从而不会留下重复的标记?

我认为这是代码实现的问题。 尝试这个。 jsfiddle上进行了测试 ,它运行良好。

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应用程序中,则不是Google Maps API出现了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM