安装prettymaps并运行Demo的过程

1. 尝试pip安装prettymap

进入仓库https://github.com/marceloprates/prettymaps,根据提示在cmd中运行
pip install prettymaps
会报错显示Fiona安装有问题,于是手动安装。

2. 手动安装Fiona

在https://www.lfd.uci.edu/~gohlke/pythonlibs/找到适合版本的GDAL和Fiona包,
利用pip手动安装,比如:

cd [包的位置] 
pip install GDAL-3.4.3-cp39-cp39-win_amd64.whl
pip install Fiona-1.8.21-cp39-cp39-win_amd64.whl

注意需要先安装GDAL再安装Fiona,这样可以正常安装成功。
此后再pip install prettymaps,可显示成功安装。

3. 尝试运行Demo

在仓库提供的Demo中https://nbviewer.jupyter.org/github/marceloprates/prettymaps/blob/main/notebooks/examples.ipynb,需要加载以下包

# For local execution (does not require installing the library):
%load_ext autoreload
%autoreload 2
import sys; sys.path.append('../')

# Prettymaps
from prettymaps import *
# Vsketch
import vsketch
# OSMNX
import osmnx as ox
# Matplotlib-related
import matplotlib.font_manager as fm
from matplotlib import pyplot as plt
from descartes import PolygonPatch
# Shapely
from shapely.geometry import *
from shapely.affinity import *
from shapely.ops import unary_union

其中vsketch没有安装。

4. 尝试安装vsketch

进入vsketch的官方页面https://vsketch.readthedocs.io/en/latest/install.html
可以看到推荐的安装方式是
$ pipx install git+https://github.com/abey79/vsketch
我没有安装过pipx和git,于是先pip install pipx安装pipx,
再到git官网gitforwindows.org下载git并安装,并把其添加到环境变量中。
之后再运行
$ pipx install git+https://github.com/abey79/vsketch
可以看到vsketch安装成功。

5. 尝试运行Demo仍然报错

但是再次import vsketch仍然不成功,即使把pipx的路径也添加到环境变量。
如果不管vsketch,仍然会报错。但是问题可能并不出在vsketch上,而应该是matplotlib的问题。

Traceback (most recent call last):

  File D:\下载\tools\plot\prettymapsDemo.py:25 in <module>
    backup = plot(

  File G:\anaconda\lib\site-packages\prettymaps\draw.py:230 in plot
    layers = {

  File G:\anaconda\lib\site-packages\prettymaps\draw.py:231 in <dictcomp>
    layer: get_layer(

  File G:\anaconda\lib\site-packages\prettymaps\fetch.py:380 in get_layer
    return get_streets(**kwargs, layer=layer)

  File G:\anaconda\lib\site-packages\prettymaps\fetch.py:293 in get_streets
    streets = ox.project_graph(streets)

  File G:\anaconda\lib\site-packages\osmnx\projection.py:144 in project_graph
    gdf_edges_proj = project_gdf(gdf_edges, to_crs=gdf_nodes_proj.crs)

  File G:\anaconda\lib\site-packages\pandas\core\generic.py:5575 in __getattr__
    return object.__getattribute__(self, name)

AttributeError: 'DataFrame' object has no attribute 'crs'

在https://github.com/marceloprates/prettymaps/issues/88中,我发现了同样的问题。
参照解决方法,在cmd中用pip install osmnx==1.2.1升级osmnx后,运行成功。

猜猜这是哪里,哈哈

6.使用prettymapp

在https://chrieke-prettymapp-streamlit-prettymappapp-1k0qxh.streamlitapp.com/中提供了交互式的生成地图方式,还是挺好用的。

posted @ 2022-09-07 15:30  卷积凉皮  阅读(333)  评论(1编辑  收藏  举报