谷歌地图API(错误?) - 当地图手拖动开始“可编辑”时,Mousedown陷入困境。多边形点

时间:2017-09-27 20:46:26

标签: javascript google-maps google-maps-api-3 polygons

我为主题名称道歉,但我相信我发现了一个相对容易复制的错误,其中在多边形上的特定点上点击并拖动地图会将地图粘贴到"鼠标向下拖动"很难摆脱的状态。

显示此问题要容易得多。如何重新创建:

http://jsfiddle.net/un0a0ua5/

  1. 确保多边形不可编辑(顶点上没有点标记)
  2. 将光标移动到点击时将显示顶点的任何顶点(右上角最容易重现),确保它具有单指指针光标
  3. 点击并拖动鼠标,然后滚动到地图上的其他区域,松开鼠标按钮
  4. 你现在卡住了,因为你的鼠标仍然朝下,将地图移动到顶点的中心位置,唯一的方法就是滚动鼠标滚轮。
  5. 我不确定这是否是Google Maps错误,或者我是否应该能够手动触发“鼠标”。地图上的事件释放保留。

    我能够在Ubuntu上的Chrome和Firefox以及Windows上的Chrome上重现这一点。如果需要,我可以提供更多细节。

    有什么想法吗?

    可从以下网址重播:

    var map = new google.maps.Map(document.getElementById("map_div"), {
        center: new google.maps.LatLng(33.808678, -117.918921),
        zoom: 14,
    });
    
    var new_poly = new google.maps.Polygon({
      paths: [{lat: 33.808678, lng: -117.916921}, {lat: 33.818678, lng:-117.914921}, {lat: 33.801678, lng:-117.928921}],
      strokeColor: '#000000',
      fillColor: '#000000'});
    
    google.maps.event.addListener(new_poly, 'mousedown', function() {
        console.log('POLYGON->MOUSE_DOWN');
        new_poly.setOptions({editable:true});
    });
    
    new_poly.setMap(map);
    

1 个答案:

答案 0 :(得分:0)

将事件更改为“mouseup”可以解决问题,但它似乎仍然是Google Maps API v3错误。