我在执行此操作的地方有此代码
span.latitudeDelta = 0.2;
span.longitudeDelta = 0.2;
CLLocationCoordinate2D topLeft, bottomRight;
topLeft = [mapView convertPoint:CGPointMake(0, 0) toCoordinateFromView:mapView];
CGPoint pointBottomRight = CGPointMake(mapView.frame.size.width, mapView.frame.size.height);
bottomRight = [mapView convertPoint:pointBottomRight toCoordinateFromView:mapView];
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated{
问题-我需要从API中获取新的图钉-仅在存在新区域时才需要,而不是在用户放大时才需要,这意味着我希望在同一位置使用多个图钉。
如果我有一个很大的区域,请说X。里面有A,B,C,D。
假设我从X开始-说整个地球仪地图-我得到了图钉-现在,如果用户放大或执行我永远不想调用的API,因为我拥有所有图钉。
现在,如果我以A开头-突出NY的地图并且放大(不需要调用api),但是如果我移至B区-说华盛顿特区-我需要调用api。
希望您能理解我的要求-任何建议。
任何帮助将不胜感激。
我将做两件事来处理此问题:
[首先,将UUID添加到服务器上的所有注释,以便您可以唯一地标识它们。使用UUID将屏幕上的注释存储在NSDictionary中。
其次,当用户缩放时,请对缩放区域进行请求,并检查您下载的注释是否与词典中的任何注释匹配。如果匹配,则丢弃下载的数据;如果不匹配,则将它们添加到地图和词典中。