MKMapView-如何从现有地址列表中获取和显示Near by me地址/位置的注释引脚



我对映射套件MKMapView应用程序非常陌生

我有一个组织中1000名addresses成员的列表

Ihave get the coordinates(lat,long)所有这些成员according to their addresses,

使用- (CLLocationCoordinate2D) geoCodeUsingAddress:(NSString *)address方法

通过引用这个链接

并在地图视图中显示所有1000名成员的注释通过引用此链接

但现在我的要求是只显示我附近的当前位置成员位置只显示in 2 ways

  1. 离我最近的前20名成员
  2. 我周围50公里的所有成员列表

如何实现这两个场景,

您必须通过找到每个成员与您当前位置之间的距离

CLLocation *memberlocation = [[CLLocation alloc] initWithLatitude:memberlat longitude:memberlong];
CLLocation *yourcurrentlocation = [[CLLocation alloc] initWithLatitude:currentlocationlat longitude:currentlocationlong];
CLLocationDistance distance = [memberlocation distanceFromLocation:yourcurrentlocation];

然后使用它们可以找到最近的成员,并使用自己的逻辑为所需的解决方案提供代码。

如果你认为将1000个地址与自定位进行比较需要时间,那么将自定位lat-long发送到服务器Web服务,在那里你有所有成员lat-long,在Web服务中你必须使用以下查询来查找最近的20个成员。

SELECT top (20) id, ( 6371 * acos( cos( radians(13.0610) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(80.2404) ) + sin( radians(13.0610) ) * sin( radians( lat ) ) ) ) AS distance 
FROM markers  ORDER BY distance;

在这里,你必须通过你自己的位置纬度,而不是13.0610,80.2404是经度

最新更新