OSMNX - визуализация водного пути вместе со следами и землей - PullRequest
2 голосов
/ 17 апреля 2019

Я пытаюсь построить водный путь вместе с землей (сеть улиц / карта) и следами (здания).Моя проблема заключается в том, что водные пути представляют собой большие замкнутые многоугольные области , что означает, что вместо того, чтобы построить красивую синюю реку правильной толщины, она наносит на карту реку по всей половине фигуры (и там нет воды, IRL ...).Это то, что у меня есть в Jupyter-Lab (пример координат с несколькими дорогами для быстрого теста):

%matplotlib inline
import matplotlib.pyplot as plt
import osmnx as ox
ox.config(log_file=True, log_console=True, use_cache=True)
import numpy as np 

map_settings = dict(
    dist=805,
    edge_color='k',
    bgcolor='w',
    dpi = 300,
    point = (45.27386, 25.04644),
    default_width=2,
    )
fig, ax = ox.plot_figure_ground(network_type='all', 
    **map_settings,
    )

gdf_bldings = ox.footprints.footprints_from_point(point=map_settings['point'], 
    distance=map_settings['dist'], footprint_type='building',
    )

fig, ax = ox.footprints.plot_footprints(gdf_bldings, fig=fig, ax=ax, 
    set_bounds=False, save=False, show=True, close=False, 
    dpi=map_settings['dpi'],
    )


gdf_water = ox.footprints.footprints_from_point(point=map_settings['point'], 
    distance=map_settings['dist'], footprint_type='waterway',
    )

fig, ax = ox.footprints.plot_footprints(gdf_water, fig=fig, ax=ax, color='b', 
    set_bounds=False, save=False, show=True, close=False, 
    dpi=map_settings['dpi'],
    )

coslat = np.cos(np.cos(map_settings['point'][1] / 180. * np.pi) )
ax.set_aspect(1/coslat)
fig.set_figwidth(10)
fig

, и это дает следующий рисунок.

OSMnx plot of ground network, building footprints and waterways

Я пробовал другие места, и там тоже самое. Можно ли как-нибудь исправить это, чтобы получить красивую реку, как и ожидалось? Я попытался перебрать стройные объекты и выяснить, могу ли я удалить координаты, но она становится уродливой довольно быстро.

...