iOS route-me可拖动标记丢失轨道(即使在样本中)

时间:2012-11-07 14:03:45

标签: ios objective-c draggable marker route-me

在我的iOS应用程序中,我使用route me lib在离线模式下显示地图。 我在地图上有一些标记,现在我想让它们可以拖动。我用了这段代码:

- (void) mapView:(RMMapView *)map didDragMarker:(HotspotMarker*)marker withEvent:(UIEvent *)event
{
    UITouch* touch = [[event allTouches] anyObject];
    if([[event allTouches] count] == 1 && touch.phase == UITouchPhaseMoved)
    {
        CGPoint position = [touch locationInView:[touch.view superview]];
        CGSize delta = CGSizeMake((position.x-(marker.position.x)),
                                  (position.y-(marker.position.y)));
        [marker moveBy: delta];
        [marker setProjectedLocation:[[_mapView.contents projection]
                                      latLongToPoint:[_mapView pixelToLatLong:marker.position]]];
    }
}

当我慢慢移动鼠标时,标记拖得很好,但当我快速移动鼠标时,我松开了轨道。

所以我查看了示例“MapTestbedFlipMaps”项目并运行它......并遇到了同样的问题。

然后我尝试用手势识别器自己做...但我仍然有问题。

有什么想法吗?

编辑:问题不是来自标记的图像大小,我尝试使用100x100图像并得到相同的结果。

1 个答案:

答案 0 :(得分:0)

试试这个:

- (void) mapView:(RMMapView *)map didDragMarker:(RMMarker *)marker withEvent:(UIEvent *)event
{

    CGPoint position = [[[event allTouches] anyObject] locationInView:mapView];

    CGRect rect = [marker bounds];

    [self.mapView.markerManager moveMarker:marker AtXY:CGPointMake(position.x,position.y +rect.size.height/3)];

}