我需要开发一个工具(例如:计算多边形区域)并将其与Google Maps集成.我不熟悉java.我可以使用python执行此操作吗?如果是,我该如何将我的代码与地图集成?
您可以通过ipyleaflet包在IPython/Jupyter Notebook中使用OpenStreetMap而不是Google map 来实现.只需在Ipython Notebook(基于python的环境)中编写(或导入)您的脚本,然后在这里查看;
https://github.com/ellisonbg/ipyleaflet/tree/master/examples
你将能够绘制你想要的任何定义新图层等等......
from ipyleaflet import (
Map,
Marker,
TileLayer, ImageOverlay,
Polyline, Polygon, Rectangle, Circle, CircleMarker,
GeoJSON,
DrawControl
)
m = Map(zoom=0)
dc = DrawControl()
def handle_draw(self, action, geo_json):
print(action)
print(geo_json)
dc.on_draw(handle_draw)
m.add_control(dc)
m
Run Code Online (Sandbox Code Playgroud)
import pyproj
import shapely
import shapely.ops as ops
from shapely.geometry.polygon import Polygon
from functools import partial
my_poly = dc.last_draw['geometry']['coordinates'][0]
geom = Polygon(my_poly)
geom_area = ops.transform(
partial(
pyproj.transform,
pyproj.Proj(init='EPSG:4326'),
pyproj.Proj(
proj='aea',
lat1=geom.bounds[1],
lat2=geom.bounds[3])),
geom)
print (geom_area.area, 'square meters, which is equal to',geom_area.area/1000000, 'square kilometers')
Run Code Online (Sandbox Code Playgroud)
2320899322382.008平方米,相当于2320899.3223820077平方公里