青蛙最近整理照片和blog的时候,一直想想在blog post里添加一个地图。
但是pelican似乎没有靠谱的google map plugin。
虽然有一个
google_embed
,但是似乎现在不能用了,按照它的README写好map之后,post里面完全不会转义。
于是青蛙一怒之下自己照猫画虎写了个liquid_tag版本的google map,竟然也能用了。
目前这个plugin支持map和direction模式,青蛙还在考虑要不要添加街景模式。
添加map的方法:
{% gmap "location" mode [maptype] [align] [width] [height] %}
location
:必选项,指定地点,必须包含双引号,支持中文。
mode
:必选项,地图模式,有place
和search
选项,
指定地图显示单个地点或者搜索location中的关键字
maptype
:地图的显示模式,包含roadmap
、satellite
、hybrid
和terrain
。
align
:地图在页面中的对齐方式,left
、center
或者right
width
:地图宽度
height
:地图高度
例如: { % gmap "东方明珠,上海" place roadmap left 600 480 % }
显示如下地图:
添加direction(导航)的方法:
{% gdirection "origin" "destination" ["waypoints"] mode [maptype] [align] [width] [height] %}
origin
:必选项,指定出发点,必须包含双引号,支持中文。
destination
:必选项,指定目的地,必须包含双引号,支持中文。
waypoints
:指定途经点,必须包含双引号,支持中文。
mode
:必选项,导航模式,有driving
、walking
、bicycling
、
transit
和flying
选项。
maptype
:地图的显示模式,包含roadmap
、satellite
、hybrid
和terrain
。
align
:地图在页面中的对齐方式,left
、center
或者right
。
width
:地图宽度。
height
:地图高度。
例如: { % gdirection "东方明珠,上海" "人民广场,上海" driving roadmap left 600 480 % }
显示如下地图:
如果你也想在pelican里面使用这个插件,可以在
Google cloud plateform console
申请一个MAP API key,然后在pelicanconfig.py
文件里加入API key配置:
GMAPS_API_KEY = "YOUR_API_KEY_HERE"
然后给liquid_tag打个补丁:
接着把这个文件放进liquid_tags目录里面,然后就可以在post里添加地图了。
Enjoy posting!
Update: 2019-07-13
青蛙翻了几天google map API文档,给这个plugin山寨了一个同时显示多个地点的参数。
不过并没有最终完成,所以先不放出完整代码了。大概效果是这个样子:
参考文档:
[1] Google Embed
[2] google_embed
[3] Liquid-style Tags
[4] Geocoding Service | Maps JavaScript API | Google Developers
Comments
comments powered by Disqus