我正在开发一个包含 map 的 iphone 应用程序。起始屏幕是导航屏幕,用户可以在其中选择位置,比方说佛罗里达。现在,当用户选择佛罗里达时,我想仅从佛罗里达选取至少六个随机点(点的纬度和经度,以便我可以添加注释)。
我没有数据库,所以我无法从佛罗里达州的数据库中获取 5 个点并放置它们。
有什么想法吗?
谢谢,
最佳答案
如果您没有任何信息可以告诉您要在其中生成随机点的区域的形状和大小,这将非常困难。 Harikrishnan 为您提供了一个良好的开端,尽管每次将纬度和经度增加 0.0001 几乎不是随机的。在佛罗里达州的坐标(根据谷歌,北纬 28.0908°,西经 81.9604°)向两个方向移动 0.0001 仅是 14m away ,所以您不太可能以这种速度离开佛罗里达。
您可以使用随机数而不是 0.0001 来调整 Harikirshnan 的方法,但您仍然需要知道用户正在查看的区域有多大。当您查看一个州甚至一个城市时,在 14 米范围内获得 5 分并不是什么好事。
也许您需要更仔细地了解您要实现的目标。如果这些点不代表地理数据,那你为什么要把它们放在 map 上。如果他们这样做并且他们代表整个区域而不是单个点那么我能想到的最好的方法是根据 Apple 为用户选择的位置返回的 maprect 生成随机点。 (粗略地说就是 mapX = random*maprect.size.width + maprect.origin.x
)。然后 incase 你有一个像佛罗里达这样的区域,它的形状不像你的 MKMapView 那样完美,你需要反向地理编码以查看你选择的点是否真的在佛罗里达之内(即将坐标发送到 Apple 并检查地址)。
或者,您现在可以考虑在 map 上显示数据
关于iphone - 如何获取 iphone map 中一个点周围的随机点数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929493/