[英]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.