在Python中连接Google地图到SHP文件。

问题描述 投票:-2回答:1

我想连接谷歌卫星地图与边界在shp,为了裁剪一切城市以外的。我有shp文件的 弗罗茨瓦夫市边界 和代码,从谷歌地图下载卫星地图。地图的中间是已知的(lat = 51.1078852, lon = 17.0385376),所以也许有可能以某种方式将两者连接起来?

我发现了许多方法来做,使用其他软件,如。

但不是Python.这里是一个代码,下载弗罗茨瓦夫卫星地图(chenging的API密钥后)。

import requests
import shutil

#API
with open('apikey.txt') as f:
    apikey = f.readline()
    f.close 


lat = 51.1078852
lon = 17.0385376    
zoom = 14
size_tile_x, size_tile_y = 1024, 1024
scale = 2
format_image='png'
maptype='satellite'
style=''
url_s = f"https://maps.googleapis.com/maps/api/staticmap?key={apikey}&scale={scale}&center={lat},{lon}&zoom={zoom}&format={format_image}&maptype={maptype}{style}&size={size_tile_x}x{size_tile_y}"

r = requests.get(url_s, stream=True, headers={'User-agent': 'Mozilla/5.0'})
name = 'Map.png'
if r.status_code == 200:
    with open(name, 'wb') as f:
        r.raw.decode_content = True
        shutil.copyfileobj(r.raw, f)
python google-maps shapefile
1个回答
0
投票

如果你可以下载地图作为一个地理参考光栅(如一个GeoTIFF),你可以使用 GDALOGR. 我不认为PNG文件是典型的地理引用(我从来没有见过地理引用的PNG),所以你可能必须首先地理引用PNG,并将其保存为PNG以外的其他文件,如GeoTIFF。

如果你能以某种方式让文件被地理引用,那么这里有一个例子。教程 来自 Python GDAL Cookbook,关于使用 shapefile 剪裁光栅。

© www.soinside.com 2019 - 2024. All rights reserved.