作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 pygeocoder使用类似代码获取地址的纬度和经度。
from pygeocoder import Geocoder
for a in address:
result = Geocoder.geocode(a)
print(result[0].coordinates)
这很好用。有没有什么方法可以从 python 中实际生成带有这些点的谷歌地图网页?如果能够尽可能停留在一种编程语言上,那就太好了。
我在网上搜索了很多解决方案,但没有找到合适的解决方案。也许这是不可能的?
最佳答案
如果您想创建一个动态网页,您将在某些时候必须生成一些 Javascript 代码,恕我直言,这会使 KML 产生不必要的开销。更容易生成生成正确 map 的 Javascript。 The Maps API documentation是一个很好的起点。它也有示例 with shaded circles .这是一个简单的类,用于生成仅包含标记的代码:
from __future__ import print_function
class Map(object):
def __init__(self):
self._points = []
def add_point(self, coordinates):
self._points.append(coordinates)
def __str__(self):
centerLat = sum(( x[0] for x in self._points )) / len(self._points)
centerLon = sum(( x[1] for x in self._points )) / len(self._points)
markersCode = "\n".join(
[ """new google.maps.Marker({{
position: new google.maps.LatLng({lat}, {lon}),
map: map
}});""".format(lat=x[0], lon=x[1]) for x in self._points
])
return """
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<div id="map-canvas" style="height: 100%; width: 100%"></div>
<script type="text/javascript">
var map;
function show_map() {{
map = new google.maps.Map(document.getElementById("map-canvas"), {{
zoom: 8,
center: new google.maps.LatLng({centerLat}, {centerLon})
}});
{markersCode}
}}
google.maps.event.addDomListener(window, 'load', show_map);
</script>
""".format(centerLat=centerLat, centerLon=centerLon,
markersCode=markersCode)
if __name__ == "__main__":
map = Map()
# Add Beijing, you'll want to use your geocoded points here:
map.add_point((39.908715, 116.397389))
with open("output.html", "w") as out:
print(map, file=out)
关于python - 是否可以从 python 创建谷歌地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342097/
leaflet:一个开源并且对移动端友好的交互式地图 JavaScript 库 中文文档: https://leafletjs.cn/reference.html 官网(英文): ht
我是一名优秀的程序员,十分优秀!