1

我正在开发一个包含地图的 iphone 应用程序。起始屏幕是导航屏幕,用户可以在其中选择位置,比如说佛罗里达。现在,当用户选择佛罗里达时,我只想从佛罗里达挑选至少六个随机点(点的纬度和经度,以便我可以放置注释)。

我没有数据库,因此我无法从佛罗里达州的数据库中获取 5 分并放置它们。

有任何想法吗?

谢谢,

4

2 回答 2

2

如果您没有任何东西可以告诉您要在其中生成随机点的区域的形状和大小,这将非常困难。Harikrishnan 为您提供了一个良好的开端,尽管每次将 lat 和 long 增加 0.0001 并不是随机的。在佛罗里达州的坐标(根据谷歌的数据,北纬 28.0908°,西经 81.9604°)在两个方向上移动 0.0001距离只有 14m,因此您不太可能以这种速度离开佛罗里达。

您可以使用随机数而不是 0.0001 来调整 Harikirshnan 的方法,但您仍然需要知道用户正在查看的区域有多大。当您查看一个州甚至一个城市时,在 14m 范围内获得 5 分并不是什么好事。

也许您需要更仔细地查看您想要实现的目标。如果这些点不代表地理数据,那么为什么要将它们放在地图上。如果他们这样做并且它们代表整个区域而不是单个点,那么我能想到的最好的方法是根据 Apple 为用户选择的位置返回的 maprect 生成随机点。(粗略地说是mapX = random*maprect.size.width + maprect.origin.x)。然后如果你有一个像佛罗里达这样的区域,它的形状不像你的 MKMapView,你需要反向地理编码,看看你选择的点是否真的在佛罗里达内(即将坐标发送给苹果并检查地址)。

或者,您现在可以考虑在地图上显示数据

于 2012-12-18T21:23:32.520 回答
0

尝试这个

NSInteger i;
    double offset=0.0001;
    for(i=1;i<=5;i++){
        double newlatitude=location.coordinate.longitude+offset;
        double newlongitude=location.coordinate.longitude+offset;
        NSLog(@"%f ,%f",newlatitude,newlongitude );
        offset+=0.0001;
    }
于 2012-12-18T09:19:10.130 回答