繁体   English   中英

谷歌地图只设置选定的标记可拖动

[英]Google maps set only the selected marker draggable

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

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

但是现在,当您单击另一个标记时,上一个选定的标记也可以拖动。

亲切的问候, Gjjansen

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

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)
});

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

    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);
}

暂无
暂无

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

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