Подключение Google Maps к файлам SHP в Python - PullRequest
0 голосов
/ 15 апреля 2020

Я хотел бы соединить спутниковую карту Google с границами в shp, чтобы обрезать все за пределами города. У меня есть файл shp Границы города Вроцлава и код, который загружает спутниковую карту с карт Google. Середина карты известна (lat = 51.1078852, lon = 17.0385376), поэтому, возможно, можно как-то соединить два?

Я нашел множество способов сделать это с помощью другого программного обеспечения, такого как:

Но не Python. Вот код, который загружает спутниковую карту Вроцлава (после изменения ключа 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)

1 Ответ

0 голосов
/ 27 апреля 2020

Если вы можете загрузить карту как растр с географической привязкой (например, GeoTIFF), вы можете использовать GDAL / OGR . Я не думаю, что файлы PNG, как правило, имеют географическую привязку (я никогда не видел PNG с географической привязкой), поэтому вам, возможно, придется сначала привязать географическую ссылку к PNG и сохранить ее как нечто отличное от PNG, например, GeoTIFF.

Если вы можете каким-либо образом получить файл с географической привязкой, то вот учебник из поваренной книги GDAL Python по вырезанию растра с помощью шейп-файла.

...