我已经从this link得到了关于苹果地图套件的相同问题的答案,但是我不知道如何检查某些位置或注释(GMSMarker)是否在Google Map SDK中的GMSPolygon中。 所以,如果有人有任何想法,请帮助我。
答案 0 :(得分:13)
我自己得到了答案。
Google SDK中的GMSGeometryUtils.h文件中定义了内联函数:
//Returns whether |point|,CLLocationCoordinate2D lies inside of path, GMSPath
BOOL GMSGeometryContainsLocation(CLLocationCoordinate2D point, GMSPath *path,
BOOL geodesic);
它包含一个名为GMSGeometryContainsLocation的函数,它确定位置点是否位于多边形路径内。
if (GMSGeometryContainsLocation(locationPoint, polygonPath, YES)) {
NSLog(@"locationPoint is in polygonPath.");
} else {
NSLog(@"locationPoint is NOT in polygonPath.");
}
答案 1 :(得分:0)
对于Swift 4 ,您可以使用以下扩展程序:
extension GMSPolygon {
func contains(coordinate: CLLocationCoordinate2D) -> Bool {
if self.path != nil {
if GMSGeometryContainsLocation(coordinate, self.path!, true) {
return true
}
else {
return false
}
}
else {
return false
}
}
}
您可以像这样直接从多边形对象中调用它:
if gms_polygon.contains(coordinate: point) {
//do stuff here
}