使Google地图标记在区域/区域内可拖动?

时间:2015-07-12 23:55:28

标签: android google-maps google-maps-markers google-maps-android-api-2 google-maps-api-2

我正在根据我的位置创建标记,我想让标记在距离该位置1公里的范围内可拖动。

所以,基本上我想知道如何只在某个区域/区域内绘制标记,而不是整个地图。

谢谢

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