使用Mapbox iOS SDK获取缩放后的地图大小

时间:2013-12-11 16:31:44

标签: ios iphone mapbox

我有两个观点。 1个加载的地图框视图另一个地图图像。现在我想在点击图像中的位置时计算地图位置。

但我没有得到确切的位置。我假设我所采取的地图位置是错误的。

我正在计算这种方式

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

       CGPoint location=[[touches anyObject] locatinInView:self];

       CGPoint point;
       point.x=(location.x * self.mapView.mapScrollView.contentSize.width)/self.size.width);
       point.y=(location.y * self.mapView.mapScrollView.contentSize.height)/self.size.height);

       mapView.mapScrollView.contentOffset=point;

}

P.N - 我也尝试了另一种方式,但没有工作。当你缩放到4时它会给你完美,但在那之后它没有给出准确的位置

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

       CGPoint location=[[touches anyObject] locatinInView:self];

       CGPoint point;
       point.x=(location.x * self.mapView.projection.planetBounds.size.width/self.mapView.metersPerPixel)/self.size.width);
       point.y=(location.y * self.mapView.mapScrollView.projection.planetBounds.size.height/self.mapView.metersPerPixel)/self.size.height);

       mapView.mapScrollView.contentOffset=point;

}

知道怎么做吗?

我正在使用Mapbox sdk。

https://www.mapbox.com/

2 个答案:

答案 0 :(得分:1)

不要直接进入地图视图的滚动视图 - 它是私有API(尽管是开源的)。请查看此处的方法,而不是转换:

https://www.mapbox.com/mapbox-ios-sdk/api/#//api/name/coordinateToPixel

答案 1 :(得分:0)

MapBox iOS SDK具有此委派方法 - (void)singleTapOnMap:(RMMapView *)mapView at:(CGPoint)point;

RMMapView有方法 - (CLLocationCoordinate2D)pixelToCoordinate:(CGPoint)pixelCoordinate 提示:[mapView pixelToCoordinate:(CGPoint)];

  • (CGPoint)coordinateToPixel:(CLLocationCoordinate2D)坐标 提示:[mapView coordinateToPixel:coordinate];

希望对你有所帮助。