使用python第三方库prettymaps绘制海报样式代码,最新有效

目录

效果展示

准备工作

教程地址

预设

查看预设

prettymaps.plot()的参数,直接上代码

 加上文字

控制地图圆还是方

改变生成地图大小和旋转方向

​编辑设置边界和输出尺寸

预设设置

参考文档


效果展示

准备工作

#安装第三方库
pip install prettymaps
pip install  matplotlib

教程
地址

prettymaps.plot(your_query)

#your_query指的是你想要绘制的地址,有以下三种格式
#1.地址,例如天安门,1,西长安街,东华街道,北京市,东城区,北京市,100010,中国
#建议使用openstreetmap查询
#2.经纬度,比如天安门就是经度:116.38  纬度:39.90
#Latitude / Longitude coordinates (Example: (39.90, 116.38 ))
#3.A custom boundary in GeoDataFrame format意思是使用Python的GeoPandas库,
#创建一个包含几何数据和相关属性数据的GeoDataFrame。GeoDataFrame是GeoPandas的核心数据结构,
#类似于Pandas的DataFrame,但专门用于处理地理空间数据。
预设

fig, map_axis = plt.subplots(figsize=(12, 12), constrained_layout=True)
map_plot = prettymaps.plot(
    "北京大学, 5号, 颐和园路, 海淀区, 北京市, 100871, 中国",
    preset='minimal',
    ax=map_axis,
)
查看预设
print(prettymaps.presets())

 

 

prettymaps.plot()的参数,直接上代码
colors = {
    "background": "#F2F4CB",
    "background_edge": "#dadbc1",
    "green": "#D0F1BF",
    "green_edge": "#2F3737",
    "forest": "#64B96A",
    "forest_edge": "#2F3737",
    "water": "#a1e3ff",
    "water_edge": "#2F3737",
    "water_hatch": "#85c9e6",
    "parking": "#F2F4CB",
    "parking_edge": "#2F3737",
    "streets": "#2F3737",
    "streets_edge": "#475657",
    "building_palette": ["#FFC857", "#E9724C", "#C5283D"],
    "building_edge": "#2F3737"
}
fig, map_axis = plt.subplots(figsize=(12, 12), constrained_layout=True)
map_plot = prettymaps.plot(
    "北京大学, 5号, 颐和园路, 海淀区, 北京市, 100871, 中国",
    ax=map_axis,
    circle=True,
    radius=1100,
#图层(layer):要获取的 OpenStreetMap 图层的字典。
#值:代表 OpenStreetMap 查询的字典
#style:Matplotlib样式参数
#Keys:图层名称(与之前相同)
#值:代表 Matplotlib 样式参数的字典
#其实就是获取的图层和你要绘制的图层11对应
    layers={
        "green": {
            "tags": {
                "land-use": "grass",
                "natural": ["island", "wood"],
                "leisure": "park"
            }
        },
        "forest": {
            "tags": {
                "land-use": "forest"
            }
        },
        "water": {
            "tags": {
                "natural": ["water", "bay"]
            }
        },
        "parking": {
            "tags": {
                "amenity": "parking",
                "highway": "pedestrian",
                "man_made": "pier"
            }
        },
        "streets": {
            "width": {
                "motorway": 5,
                "trunk": 5,
                "primary": 4.5,
                "secondary": 4,
                "tertiary": 3.5,
                "residential": 3,
            }
        },
        "building": {
            "tags": {"building": True},
        },
    },
#fc fill-color 填充色
#ec edge-color 边缘颜色
#1. `"hatch": "ooo..."`
#    这个参数设置了要使用的填充图案。`"ooo..."`表示使用一种由圆圈(`o`)和点(`.`)交替组成的图案#进行填充。
#  - 这种填充图案常用于给区域添加视觉纹理,使其与其他区域有所区别。
#2. `"lw": 1`
#  - `"lw"`是"linewidth"的缩写,表示线宽。
#   - 将`"lw"`设置为1表示该元素的边界线宽度为1个单位。通常单位是像素,但也可能因情况而异。
#3. `"alpha": 1`
#  - `"alpha"`参数控制元素的透明度。
#  - 取值范围从0到1,其中0表示完全透明,1表示完全不透明。
#  - 将`"alpha"`设置为1意味着该元素是完全不透明的。
#4. `"hatch_c": colors["water_hatch"]`
# - `"hatch_c"`是"hatch color"的缩写,表示填充图案的颜色。
#  - `colors["water_hatch"]`是从`colors`字典中获取键为`"water_hatch"`对应的颜色值。
#- 因此,`"hatch_c": colors["water_hatch"]`表示将使用`colors`字典中`"water_hatch"`键对应
    style={
        "background": {
            "fc": colors["background"],
            "ec": colors["background_edge"],
            "hatch": "ooo...",
        },
        "perimeter": {
            "fc": colors["background"],
            "ec": colors["background_edge"],
            "lw": 0,
            "hatch": "ooo...",
        },
        "green": {
            "fc": colors["green"],
            "ec": colors["green_edge"],
            "lw": 1,
        },
        "forest": {
            "fc": colors["forest"],
            "ec": colors["forest_edge"],
            "lw": 1,
        },
        "water": {
            "fc": colors["water"],
            "ec": colors["water_edge"],
            "hatch": "ooo...",
            "hatch_c": colors["water_hatch"],
            "lw": 1,
        },
        "parking": {
            "fc": colors["parking"],
            "ec": colors["parking_edge"],
            "lw": 1,
        },
        "streets": {
            "fc": colors["streets"],
            "ec": colors["streets_edge"],
            "alpha": 1,
            "lw": 0,
        },
        "building": {
            "palette": colors["building_palette"],
            "ec": colors["building_edge"],
            "lw": 0.5,
        }
    }
)

 效果图(北京大学)

 加上文字
map_plot.ax.set_title(
    '北京大学',
    fontproperties = FontProperties(
        fname = 'image/OtsutomeFont_Ver3_15.ttf',
        size = 50
    )
)

控制地图圆还是方
radius = False
改变生成地图大小和旋转方向
 scale_x = .6,
 scale_y = -.6,
#scale_x控制水平方向的缩放。设置为0.6意味着输出图像在水平方向上缩小到原始尺寸的60%。
#scale_y控制垂直方向的缩放。设置为-0.6意味着输出图像在垂直方向上缩小到原始尺寸的60%,并沿y轴翻    
#转。负值会导致y轴反向。
设置边界和输出尺寸
 
dilate = 0.5
figsize = (22,10)
#dilate=0.5
#dilate参数用于控制地图边界的扩展或收缩。
#如果设置为正值(例如0.5),则会扩大地图边界,包含更大的区域。
#如果设置为负值(例如-0.5),则会收缩地图边界,仅显示较小的区域。
#figsize=(22, 10)
#figsize参数控制输出图像的尺寸大小,单位为英寸。
#它是一个元组,包含两个值:(width, height)
#在这个例子中,figsize=(22, 10)意味着输出图像的宽度为22英寸,高度为10英寸。
#增大这些值会产生更大的图像,反之亦然。
#适当设置figsize可确保输出地图的尺寸适合您的使用场景,如海报打印、网页显示等。


最开始设置的 
circle=True
radius=1100
意味着输出圆形,半径为1100米的范围
如果不输出圆形,要么
 radius=False
要么不设置

预设设置
#创建预设
prettymaps.create_preset(
    "my-preset",
    layers = {...
#删除预设
prettymaps.delete_preset('my-preset')

 多个地图拼接,懒得写了,结束吧

参考文档

https://github.com/marceloprates/prettymaps

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值