谷歌地图v3确定哪些状态在圆形覆盖的边界内

时间:2011-07-07 22:00:31

标签: google-maps-api-3 geometry geocode

有没有办法确定google.maps.Circle创建的圆形叠加层中的哪些状态?也许使用反向地理编码和getBounds或包含? Google是否提供了一种方法(使用地理编码器或其他方法),还是必须使用纬度和经度状态数据库?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

根据您的使用情况,可能还有其他可能性,包括Google Maps API或其他技术。