首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在UIView (而不是MKMapView)中使用lat/long的最佳实践

在UIView (而不是MKMapView)中使用lat/long的最佳实践
EN

Stack Overflow用户
提问于 2012-12-15 11:36:51
回答 4查看 966关注 0票数 3

基本上,我有一个POI的列表(名称、lat、long),我想在UIView上绘制它们,相对于我当前的lat/long。我正在寻找一些将这些POI (lat/long)映射到UIView的最佳实践。

I不想使用MKMapView (不需要显示地图数据)。

我读到:

http://developer.apple.com/library/ios/#documentation/general/conceptual/Devpedia-CocoaApp/CoordinateSystem.html

但我不知道如何从CLLocation到UIView上的(x,y)。我只想画出我现在的位置。因此,例如,如果我的屏幕表示一个20×30公里的区域,我如何将我的POI映射到它们相应的(x,y)坐标?

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2012-12-15 15:40:37

您正在做的事情有点奇怪,但是您可以将纬度/经度转换为一个名为CGPoint-like结构的MKMapPointMKMapPoint有一个xy值,它们对应于地图上的点。想象一下,如果你绘制了一张平面的世界地图,0,0是左上角。MKMapPoint是地图上使用那个坐标系的一个点。

使用函数MKMapPointForCoordinate()CLLocationCoordinate2D转换为MKMapPoint

代码语言:javascript
运行
复制
MKMapPoint myMapPoint = MKMapPointForCoordinate(myLocationCoordinate);

当你得到点的列表时,你必须做一些事情,比如找到最大值、最小值x和y值,然后使用这些值将所有的点拟合到你的视图中,否则你的视图中会有大量非常接近的点。

票数 2
EN

Stack Overflow用户

发布于 2012-12-15 13:58:55

我的猜测是,对于一个20公里×30公里的区域,你可以认为地球是平的,因此可以线性地外推坐标。我相信你可以在谷歌上找出距离在0.00001度和经度上有多大的差异。

所以如果你在X轴上有20公里,你现在的位置是纬度30.1234567,0.0000001是1公里,你可以把你的坐标放在屏幕的中心,30.1234557作为最左边的X坐标等等。

我不是想在这里给出答案,只是想大声想想,因为我也想做一些类似的事情,作为一个基于互联网的应用程序(但没有显示),在两个坐标下,我必须找到它们之间的距离。

票数 0
EN

Stack Overflow用户

发布于 2012-12-15 14:25:01

有许多(许多)不同的方法来模拟行星和将三维坐标转换到2D表面,各种方法带来的误差取决于地球的不同部分。不过,这个问题似乎涵盖了你所追求的大部分内容:

在带有标定点的地图上将经度和纬度转换为X

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13891814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档