Произошло исключение: SSLError при добавлении базовой карты с Contextily на карту Geo Pandas - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь использовать Contextily для добавления базовой карты к карте, созданной с помощью Geo Pandas, но получаю следующую ошибку:

HTTPSConnectionPool(host='a.tile.openstreetmap.org', port=443): Max retries exceeded with url: /14/8452/7869.png (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))
  File "D:\generate_udf_maps.py", line 42, in generate_map
    ctx.add_basemap(ax, source=ctx.providers.OpenStreetMap.Mapnik)
  File "D:\generate_udf_maps.py", line 60, in <module>
    generate_map(gdb_path, None, operations_file)

Вот мой код:

import geopandas as gpd
import pandas as pd
import matplotlib.pyplot as plt
from shapely.geometry import Point, Polygon
import contextily as ctx

fig, ax = plt.subplots()

p1 = Point(640864.516, 784724.566)
p2 = Point(638594.804, 788492.544)
p3 = Point(644076.197, 788141.637)
p4 = Point(641089.953, 789539.343)

df = gpd.GeoDataFrame(geometry=[p1, p2, p3, p4])
df.plot(ax=ax)

ctx.add_basemap(ax, source=ctx.providers.OpenStreetMap.Mapnik) # Error happens here. If this line is not present I get a map with just the points.

plt.show()

Я безрезультатно пробовал разные поставщики карт и видел несколько ссылок с предложениями, относящимися к справочному пакету, которые, я не уверен, применимы здесь. Заранее спасибо!

1 Ответ

0 голосов
/ 30 июня 2020

Я нашел менее идеальное и небезопасное временное решение, которое заключается в отключении проверки SSL, установив verify=False в C: \ Users \ btrindad \ Anaconda3 \ envs \ testgdal \ lib \ site-packages \ contexttily \ tile.py, строка 443, так что он становится:

request = requests.get(tile_url, headers={"user-agent": USER_AGENT}, verify=False)

Это решение не идеально, но будет работать до тех пор, пока не будет найдено постоянное решение. Я все еще надеюсь, что есть душа, которая знает, как решить эту проблему окончательно и чисто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...