我正在根据我的位置创建标记,我想让标记在距离该位置1公里的范围内可拖动。
所以,基本上我想知道如何只在某个区域/区域内绘制标记,而不是整个地图。
谢谢
答案 0 :(得分:2)
您必须定义 bounds 并检查新位置是否在标记的contains
范围之外:如果新位置超出边界,您可以将标记重置为最后一个有效的职位或做你想做的事。
要匹配标记是否在边界内,您必须使用DEMO对象的LatLngBounds bounds;
LatLngBounds.Builder builder = new LatLngBounds.Builder();
// You construct your bounds in a way like this
builder.include(new LatLng(latitude1, longitude1));
builder.include(new LatLng(latitude2, longitude2));
builder.include(new LatLng(latitude3, longitude3));
// etc
bounds = builder.build();
googleMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() {
@Override
public void onMarkerDragStart(Marker marker) {
}
@Override
public void onMarkerDrag(Marker marker) {
}
@Override
public void onMarkerDragEnd(Marker marker) {
if (bounds.contains(marker.getPosition())) {
// cast your spell
} else {
// you can't drag here
}
}
});
方法。
这样的事情:
display: inline-block