我有两个观点。 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。
答案 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)];
和
希望对你有所帮助。