【问题标题】:JavaFX: Google Maps in a WebPane - Moving a Marker leaves old one behindJavaFX:WebPane 中的 Google 地图 - 移动标记会留下旧标记
【发布时间】:2016-12-07 07:05:02
【问题描述】:

我有一个在 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
  });
}

这两种实现都会产生相同的问题:点击地图会在新位置创建一个标记,但旧位置标记也会保留在屏幕上。移动地图并强制重新加载带有旧标记的部分会删除该标记,让我相信这不是实现问题,而是网络浏览器处理它的错误。有什么办法可以解决这个问题,以免留下重复的标记?

【问题讨论】:

    标签: javascript java google-maps google-maps-api-3 javafx


    【解决方案1】:

    我认为这是代码实现的问题。尝试这个。在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。

    【讨论】:

    • 谢谢!这似乎有效 - 将标记设置为可拖动修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 2019-08-16
    • 2016-10-25
    • 1970-01-01
    • 2017-09-21
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多