Javascript 是否有方法仅使用哈弗森公式过滤州/省/市/区内的坐标?

Javascript 是否有方法仅使用哈弗森公式过滤州/省/市/区内的坐标?,javascript,google-maps,google-maps-api-3,google-maps-markers,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,我已经实现了GoogleMapJavaScriptAPI,通过将用户的lat、lng、placeId存储到数据库中来存储用户指定的位置列表。因此,用户可以在一个地方的半径范围内找到以公里/英里为单位的地方 我使用的是基于谷歌地图教程的哈弗森公式 我的问题是,我想将sql查询返回的坐标也限制在一个州(或城市或地区)内,因为如果用户将点放在州边界附近,Haversine公式也可能从其他州返回坐标,这不是我想要的。我已经对此进行了一段时间的研究,似乎实现这一点的方法是将状态信息也存储到数据库中,对吗

我已经实现了GoogleMapJavaScriptAPI,通过将用户的lat、lng、placeId存储到数据库中来存储用户指定的位置列表。因此,用户可以在一个地方的半径范围内找到以公里/英里为单位的地方

我使用的是基于谷歌地图教程的哈弗森公式

我的问题是,我想将sql查询返回的坐标也限制在一个州(或城市或地区)内,因为如果用户将点放在州边界附近,Haversine公式也可能从其他州返回坐标,这不是我想要的。我已经对此进行了一段时间的研究,似乎实现这一点的方法是将状态信息也存储到数据库中,对吗

或者通过谷歌地图javascript API实现这一点的更好方法


谢谢

在数据库中存储用户位置的同时,还应该有一个包含管理子分区的表。(例如,状态,您可以在中自由获取)

因此,如果您遵循您提到的教程,我猜您使用的是MySQL,并且您的点存储为带有
lat
lng
字段的记录。足以在地图上显示它们,但不足以使用空间交点

你的商店的几何结构必须使用。比如说

SELECT 
  ST_GeomFromText(CONCAT('POINT(', lng, ' ', lat, ')' )) as markerposition
FROM markers;
然后,如果您有一个名为“US_States”的美国各州表格,并且该表格有一个
geometry
类型的
geometry
字段,则可以使用该函数获取给定州几何体中包含的所有标记(在下面的示例中,包含在加利福尼亚州):

现在,我认为这是正确的方法。但是,如果这对于你想要实现的目标来说太牵强了,你也可以在前面这样做。如果您有一个
google.maps.Polygon
表示一个州的几何图形,您可以使用 过滤要显示的标记的方法,或过滤掉在所述多边形之外的标记要隐藏的方法。差不多

if (!google.maps.geometry.poly.containsLocation(marker.getPosition(), statePolygon)) {
  marker.setMap(null);
}

与在数据库中存储用户位置相同,还应该有一个包含管理子分区的表。(例如,状态,您可以在中自由获取)

因此,如果您遵循您提到的教程,我猜您使用的是MySQL,并且您的点存储为带有
lat
lng
字段的记录。足以在地图上显示它们,但不足以使用空间交点

你的商店的几何结构必须使用。比如说

SELECT 
  ST_GeomFromText(CONCAT('POINT(', lng, ' ', lat, ')' )) as markerposition
FROM markers;
然后,如果您有一个名为“US_States”的美国各州表格,并且该表格有一个
geometry
类型的
geometry
字段,则可以使用该函数获取给定州几何体中包含的所有标记(在下面的示例中,包含在加利福尼亚州):

现在,我认为这是正确的方法。但是,如果这对于你想要实现的目标来说太牵强了,你也可以在前面这样做。如果您有一个
google.maps.Polygon
表示一个州的几何图形,您可以使用 过滤要显示的标记的方法,或过滤掉在所述多边形之外的标记要隐藏的方法。差不多

if (!google.maps.geometry.poly.containsLocation(marker.getPosition(), statePolygon)) {
  marker.setMap(null);
}

嗨,非常感谢你的回答。以前,我想知道是否有一个我不知道的Google Map Api函数,允许我输入一组坐标和一个州/国家,然后返回这些州/国家内的坐标,所以现在我知道我必须自己跟踪这些州/国家。因此,我在实施这一点之前提出了要求。谢谢。是的,你必须自己提供行政分区,无论是在后面还是在前面。我需要获取美国各州的几何体列表吗?只要查找“美国州geojson”或“美国县geojson”,现在github将geojson显示为地图,有很多关于回购的信息。嗨,非常感谢你的回答。以前,我想知道是否有一个我不知道的Google Map Api函数,允许我输入一组坐标和一个州/国家,然后返回这些州/国家内的坐标,所以现在我知道我必须自己跟踪这些州/国家。因此,我在实施这一点之前提出了要求。谢谢。是的,你必须自己提供行政分区,无论是在后面还是在前面。我需要获取美国各州的几何体列表吗?只要查找“美国州geojson”或“美国县geojson”,现在github将geojson显示为地图,有很多关于回购的信息。