-
geopy 使 Python 开发人员可以使用第三方地理编码器和其他数据源轻松定位全球地址、城市、国家和地标的坐标
pip install geopy
计算两个坐标的直线距离
from geopy.distance import geodesic print(geodesic((25.033565,121.5647882), (25.036234628082, 121.55669215271)).m) print(geodesic((25.033565,121.5647882), (25.036234628082, 121.55669215271)).km) 868.9355008854188 0.8689355008854188
-
polycircles
pip install polycircles
具有 36 顶点的多边形看起来像一个圆形 from polycircles import polycircles polycircle = polycircles.Polycircle( latitude=40.768085, longitude=-73.981885, radius=200, number_of_vertices=36 ) kml = simplekml.Kml() pol = kml.newpolygon(name="Columbus Circle, Manhattan", outerboundaryis=polycircle.to_kml()) pol.style.polystyle.color = simplekml.Color.changealphaint(200, simplekml.Color.green) kml.save("test_kml_polygon_3_manhattan.kml")
kml = simplekml.Kml() outer_polycircle = polycircles.Polycircle( latitude=40.768085, longitude=-73.981885, radius=200, number_of_vertices=36 ) inner_polycircle = polycircles.Polycircle( latitude=40.768085, longitude=-73.981885, radius=180, number_of_vertices=36 ) pol = kml.newpolygon( name="Torus around Columbus Circle, Manhattan", outerboundaryis=outer_polycircle.to_kml(), innerboundaryis=inner_polycircle.to_kml() ) pol.style.polystyle.color = simplekml.Color.changealphaint(200, simplekml.Color.red) kml.save("test_kml_polygon_2_torus_manhattan.kml")
经纬度点序列 polycircles可以简单地为任何非 KML 使用生成一系列 lat-lon 元组 import pprint from polycircles import polycircles polycircle = polycircles.Polycircle(latitude=32.074523, longitude=34.791469, radius=20, number_of_vertices=12) pprint.pprint(polycircle.to_lat_lon()) ((32.07470336197859, 34.791469), (32.074679198011374, 34.7915749137218), (32.074613180857156, 34.79128555218445), (32.074679198011374, 34.791363086278196))
fastkml simplekml pykml
- 测地线算法
pip install geographiclib