0

有没有办法确定 google.maps.Circle 创建的圆圈覆盖范围内的状态?也许使用反向地理编码和 getBounds 或包含?谷歌是否提供了一种方法来做到这一点(使用地理编码器或其他方法),还是必须使用国家纬度和经度点的数据库?

4

1 回答 1

1

在 Google Maps API 中似乎没有一种简单的方法可以做到这一点。

您可以使用getBounds()来获取LatLngBounds近似圆的对象。请注意,虽然这getBounds()将返回一个近似圆形的矩形,因此您可能会得到不准确的结果。为了更准确地做到这一点,您需要使用诸如 Haversine 公式之类的东西并结合圆的中心和半径来计算一堆点来近似圆。您计算的点越多,近似值就越准确。

一旦你有了一组边界点,你还没有完全走出困境。似乎没有办法使用 Google 的 Geocoder API 来返回LatLngBounds. 因此,您必须在边界内计算更多点并为它们发送单独的反向地理编码请求。你仍然可能会错过一两个州。总的来说,糟糕。

另一种方法,这对我来说似乎没有多大吸引力,但谁知道:对于每个状态,获取一堆矩形边界的 lat/lng 数据,当它们组合在一起时,近似于状态的形状。对于每个州,使用intersects()它来查看它是否与您的圈子相交。

根据您的用例,可能还有其他可能性,涉及 Google Maps API 或其他技术。

于 2011-07-08T04:16:45.363 回答