Google Maps 1.2.0 GMSCoordinateBounds
现在包含一个containsCoordinate方法,我打算用它来过滤不在 visibleRegion 上的标记。不幸的是,当您初始化 a 时GMSCoordinateBounds
,您会得到包含您的区域或路径的边界。
所以我的问题是:是否可以查看 aCLLocationCoordinate2D
是否在 a 内GMSPath
?
Google Maps 1.2.0 GMSCoordinateBounds
现在包含一个containsCoordinate方法,我打算用它来过滤不在 visibleRegion 上的标记。不幸的是,当您初始化 a 时GMSCoordinateBounds
,您会得到包含您的区域或路径的边界。
所以我的问题是:是否可以查看 aCLLocationCoordinate2D
是否在 a 内GMSPath
?
所以我在回答我自己的问题。我只需要使用 pointForCoordinate 方法来查看该点是否在屏幕上。完美运行。
for (int i = 0; i < self.visibleLocations.count; i++) {
Location *location = [self.visibleLocations objectAtIndex:i];
CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake([location.lat floatValue], [location.lng floatValue]);
CGPoint markerPoint = [self.googleMap.projection pointForCoordinate:coordinate];
if (markerPoint.x >= 0 && markerPoint.y >= 0 && markerPoint.x <= self.googleMap.frame.size.width && markerPoint.y <= self.googleMap.frame.size.height) {
GMSMarker *marker = [GMSMarker markerWithPosition:coordinate];
marker.title = location.title;
marker.icon = [UIImage imageNamed:@"search_measle_small.png"];
marker.map = self.googleMap;
}
}