如何在谷歌地图中拖动标记

时间:2014-05-22 05:48:00

标签: ios google-maps ios7 google-maps-sdk-ios

我在我的应用中使用谷歌地图。我正在使用一个标记。我想要两件事

  1. 当我点击地图上的任何位置时,我的标记应自动动画到该位置。我在这方面很成功。

  2. 当我长时间点击标记时,它应该动画起来并随着我的触摸移动。当我释放触摸时,它应该拖到那里。

  3. 我在第二种情况下遇到问题。我已将标记的draggable属性设置为true。没有其他代码被写入。当我长按它而不是标记时,整个地图和地图一起移动,然后标记移动到我的触摸。当我释放触摸整个地图时,标记会稍微向下移动。

    有什么建议吗?

2 个答案:

答案 0 :(得分:3)

在GMSMapDelegate中,这些是与拖动相关的方法。

   - (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker;
    - (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker;
    - (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker;

但是你需要设置标记可拖动。默认情况下,标记不可拖动。

marker.draggable=YES;

在开始拖动之前,您必须按住标记。

答案 1 :(得分:0)

我还已经在Google地图中实现了可拖动标记的功能。

现在,根据您在上面有问题的2点,在longpress和release上使用标记进行地图的上下移动,这是google maps库的内置功能。 我认为地图沿标记的上下移动是为了向用户长按o标记清楚地显示完整标记。

有时,标记图标很小,可以在长按时用手指隐藏,而看不到标记拖动并放置到另一个位置。

为避免此类问题,谷歌地图添加了此功能。