根据 objective C 中 mapview 框架的坐标过滤数组
Filter array based on coordinate from mapview frame in objective C
我有数百条地图注释。注释来自字典数组,在 table 视图中显示了经纬度和经度相同的数据。 Table 视图和地图视图是基于 screenheight/2 的相同视图。例如,我需要的数组中有 100 个纬度和经度值 table 视图,地图视图显示 100 个数据。如果 mapview zoomIn 然后 table 数据(我不知道如何过滤该数据)根据 mapview 中显示的注释数量显示,与 zoomOut 相同。
我想使用地图视图帧大小来获取它,而不是将其转换为经纬度值并根据我得到的经纬度值过滤数组。
如何通过This answer
将地图视图框架转换为纬度和经度值
现在我不知道该怎么办了。如何使用纬度和经度值过滤数据。
有什么方法可以找到那个或者如何根据纬度和经度进行算术计算
您可以做的是:
A)直接获取注解:
MKMapRect visibleMapRect = mapView.visibleMapRect;
NSSet *visibleAnnotations = [mapView annotationsInMapRect:visibleMapRect];
B) 遍历你的数组并检查点是否在里面:
MKMapRect mapRect = mapView.visibleMapRect;
for (NSDictionary *item in array)
{
CLLocation *location = item[@"location"]; // Or what ever you store...
MKMapPoint mapPoint =
MKMapPointForCoordinate(location.coordinate);
BOOL inside = MKMapRectContainsPoint(mapRect, mapPoint);
}
我有数百条地图注释。注释来自字典数组,在 table 视图中显示了经纬度和经度相同的数据。 Table 视图和地图视图是基于 screenheight/2 的相同视图。例如,我需要的数组中有 100 个纬度和经度值 table 视图,地图视图显示 100 个数据。如果 mapview zoomIn 然后 table 数据(我不知道如何过滤该数据)根据 mapview 中显示的注释数量显示,与 zoomOut 相同。
我想使用地图视图帧大小来获取它,而不是将其转换为经纬度值并根据我得到的经纬度值过滤数组。
如何通过This answer
将地图视图框架转换为纬度和经度值现在我不知道该怎么办了。如何使用纬度和经度值过滤数据。
有什么方法可以找到那个或者如何根据纬度和经度进行算术计算
您可以做的是:
A)直接获取注解:
MKMapRect visibleMapRect = mapView.visibleMapRect;
NSSet *visibleAnnotations = [mapView annotationsInMapRect:visibleMapRect];
B) 遍历你的数组并检查点是否在里面:
MKMapRect mapRect = mapView.visibleMapRect;
for (NSDictionary *item in array)
{
CLLocation *location = item[@"location"]; // Or what ever you store...
MKMapPoint mapPoint =
MKMapPointForCoordinate(location.coordinate);
BOOL inside = MKMapRectContainsPoint(mapRect, mapPoint);
}