【问题标题】:Google maps set only the selected marker draggable谷歌地图只设置选中的标记可拖动
【发布时间】:2013-12-29 14:46:04
【问题描述】:

是否可以在谷歌地图上只拖动选定的标记,我现在使用这个代码:

 google.maps.event.addListener(marker, 'click', function() {  
        this.setDraggable(true);
    });

但是现在,当你点击另一个标记时,之前选中的标记也是可以拖动的。

亲切的问候, 吉詹森

【问题讨论】:

  • 不清楚你想做什么。您说要删除标记。您发布的代码在标记上设置了一个事件侦听器。什么是您的“选定”标记?
  • 对不起,我的意思是:“是否可以只拖动选定的标记”。不删除它。我选择的标记是您在现在选择的标记之前单击的标记。希望它有点清楚!
  • 您需要保留对所有标记的引用并将所有 other 标记设置为可拖动:false。

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


【解决方案1】:

使用变量或地图属性来存储对单击标记的引用:

google.maps.event.addListener(marker, 'click', function() {  

    var map        = this.getMap(),
        dragMarker = map.get('dragMarker');

    if(dragMarker){
       dragMarker.setDraggable(false);
    }
    this.setDraggable(true);
    map.set('dragMarker', this)
});

【讨论】:

  • 我会尽快尝试,我会告诉你的!
【解决方案2】:

折线或多边形将随可拖动标记一起移动 这是代码,实现可拖动的标记侦听器及其方法

    public void onMarkerDrag(Marker marker) {


    if(distanceclick){

        int listsize = points.size();
        points.remove(listsize-1);
        if(polyline != null) polyline.remove();
        points.add(marker.getPosition());
        drawployline(points);
    }
    if(areaclick){

        int listsize = points.size();
        points.remove(listsize-1);
        if(polygon != null) polygon.remove();
        points.add(marker.getPosition());
        drawploygon(points);


    }



}



//here is the function to draw polygone/ polyline
    private void drawploygon(List<LatLng> points) {

    if(polygon != null) polygon.remove();

    PolygonOptions polygonOptions = new PolygonOptions().addAll(points)
            .clickable(true);
    polygon = mMap.addPolygon(polygonOptions);
    polygon.setStrokeColor(Color.RED);
    polygon.setStrokeWidth(3f);
    polygon.setFillColor(Color.CYAN);
}
//polyline
  private void drawployline(List<LatLng> points) {
    PolylineOptions polylineOptions = new PolylineOptions();
    polylineOptions.color(Color.CYAN);
    polylineOptions.width((float) 2.0);
    polyline = mMap.addPolyline(polylineOptions);
    polyline.setPoints(points);
}

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 1970-01-01
    • 2011-08-07
    • 2016-08-30
    • 2012-01-27
    • 2016-04-10
    • 2013-07-14
    • 2012-05-30
    • 1970-01-01
    相关资源
    最近更新 更多