Python - 边界框/圆形库

时间:2015-04-03 15:16:15

标签: python gis bounding-box

Python - Bounding Box / circle和string问题 关于一些基于Debian的单元运行的Python V2.7.x脚本,我有几个问题需要解决......

1)GIS - 边界框和圆圈

我正在尝试找到一个可以执行此操作的库

给定纬度/长度对,点A确定点A是否位于纬度/经度设置点1,点2,点3,点4的边界框内。

给定纬度/长度对,点A,纬度/长点B和距离点b的半径(英里),确定点A是否在点B的边界圆内

是否有一些库可以做到这一点?

GeoPy lib我必须做地理编码不提供这些选择。其他一些lib似乎与ArcGIS形状文件等有关...我没有使用它,也没有任何未来需要它们......当然有一些东西有一些没有厨房水槽如好。

我已经看过几个拿A点并给出边界框的东西......比如: https://github.com/jfein/PyGeoTools/blob/master/geolocation.py

不是我追求的......我想通过盒子线(P1-4)传递Point a,它告诉我A点是否在那个盒子里。

圆圈相同。从点B开始的MILES中的A点,B点和半径,如果A点是WITHIN,则该函数返回该边界cirlce。

任何能做到这些的事情???

1 个答案:

答案 0 :(得分:0)

您最好在http://gis.stackexchange.com提出问题。 无论如何:检查点是否在边界框内是不容易的:只需检查两个坐标是否在边界框的范围内。这里不需要使用库。 (检查是否 lat_min < lat_oint <lat_maxlat_min<lat_point <lat_max)。

要检查半径,可以使用地理的vincenty函数:只需计算两点之间的距离,并检查距离是否小于半径。

>>> from geopy.distance import vincenty
>>> newport_ri = (41.49008, -71.312796)
>>> cleveland_oh = (41.499498, -81.695391)
>>> print(vincenty(newport_ri, cleveland_oh).miles)
538.3904451566326