我知道大多数人都会看到这个问题,并指向Google Geocode - 但我正在寻找一个数学公式,允许某人接受一个Lat / Lng点,看看它是否在美国境内(或一个边界)框)。有没有办法通过PHP,我可以做一个计算,以查看某个点是否在某个Box(如加利福尼亚州)?
答案 0 :(得分:1)
嗯,没有任何公式可以告诉你什么状态在哪里(如果有美国 - 墨西哥战争的结果,它将完全是一个破坏者!)所以你需要得到它来自某个地方的数据。
这会变成两个问题之一,具体取决于你想要的准确程度。
如果你有墨卡托或类似投影上显示的矩形边界框的详细信息(也就是说,它有北纬和南纬的经度,东经西经度),那么公式就是:
inBox = latitude <= north && latitude >= south && longitude <= west && longitude >= east
如果你有更多细节,并且有一系列定义状态边界的点(显然,点数越多,精度越高)那么它就成了多边形点问题的一个变种,并带有保证只涉及简单的多边形(没有美国国家有一个自身交叉的边界,也没有完全包围this C code中使用的边界。有可能会有边缘情况受到这是一个2D平面算法的影响,而不是一个球形的,但我想你需要在状态的边界上有一些非常精确的数据,因为算法的不精确度要大于数据造成的数据。
答案 1 :(得分:0)
我认为最简单的方法是为每个州使用绑定框,可以从Flicker Geo API中找到,这是CA的一个示例https://www.flickr.com/places/info/2347563