用于django fluent内容的google地图小部件
fluentcms-googlemaps的Python项目详细描述
fluentcms谷歌地图
用于django-fluent-contents在网站上显示谷歌地图小部件的插件。
这个插件正在开发中。 它已经在生产中使用,只需知道有两个主要区域需要改进:
- 使用更好的地理位置小部件(例如,使用灯箱/弹出窗口)
- 使群集图标可配置。
安装
首先安装模块,最好是在虚拟环境中。它可以从pypi安装:
pip install fluentcms-googlemaps
注意:在django 1.11上,您必须首先安装以下软件包:
pip -e git+https://github.com/philippbosch/django-geoposition.git@django-1.11#egg=django-geoposition
因为django-geoposition还没有兼容django 1.11的版本。
后端配置
首先确保项目是为django-fluent-contents配置的。
然后添加以下设置:
INSTALLED_APPS+=('geoposition','fluentcms_googlemaps',)GOOGLE_MAPS_API_KEY=None# Might be needed to define this.
将以下内容添加到urls.py:
urlpatterns=[...url(r'^api/googlemaps/',include('fluentcms_googlemaps.urls')),]
之后可以创建数据库表:
./manage.py migrate
现在,可以将MapPlugin添加到您的PlaceholderField 以及PlaceholderEditorAdmin管理屏幕。
前端配置
确保所有插件媒体文件都由django-fluent-contents:
{%loadfluent_contents_tags%}{%render_content_items_media%}
这个标签应该放在页面的底部,在所有插件呈现之后。 更多配置选项-如与Django压缩机集成- 请参阅template tag documentation。
css代码
样式表代码故意省略,因为作者通常喜欢提供自己的样式。
javascript代码
javascript集成不需要配置。
默认情况下,插件包含所有必需的javascript代码。
如果需要,可以使用以下设置更改包含资源:
MAP_MARKERWITHLABEL_JS="fluentcms_googlemaps/vendor/markerwithlabel.js"MAP_MARKERCLUSTERER_JS="fluentcms_googlemaps/vendor/markerclusterer_compiled.js"MAPPLUGIN_JS="fluentcms_googlemaps/js/mapplugin.js"MAPSEARCH_JS="fluentcms_googlemaps/js/mapsearch.js"FLUENTCMS_GOOGLEMAPS_JS=(MAP_MARKERWITHLABEL_JS,MAP_MARKERCLUSTERER_JS,MAPPLUGIN_JS,)FLUENTCMS_GOOGLEMAPS_CSS={}
如果一个值定义为None,它将从前端媒体中排除。
HTML代码
如果需要,可以通过重新定义fluentcms_googlemaps/maps/default.html覆盖html代码。 此外,还可以创建其他映射样式并在FLUENTCMS_GOOGLEMAPS_STYLES中定义这些样式。 默认值为:
FLUENTCMS_GOOGLEMAPS_STYLES=(('default',{'title':_("Default"),'template':"fluentcms_googlemaps/maps/default.html",}),('search',{'title':_("Search field"),'template':"fluentcms_googlemaps/maps/search.html",'extra_js':(MAPSEARCH_JS,# = "fluentcms_googlemaps/js/mapsearch.js" unless MAPSEARCH_JS is redefined),}),)
默认情况下,将查找以下模板:
- 在FLUENTCMS_GOOGLEMAPS_STYLES中显式定义的template选项。
- 名为fluentcms_googlemaps/maps/{style}.html的模板。
- 默认值;fluentcms_googlemaps/maps/default.html。
导入数据
标记数据可以从csv文件导入,也可以接收地理编码。 可以使用自定义模板调用import_markers命令,将csv文件数据映射到标记字段。 例如:
manage.py import_markers /stores.csv --title='{{Name}}' --group=1 --geocode='{{Address}} {{Zipcode}} {{City}} {{County}}' --geocoder=google --description="<p>{{Address}}<br>{{Zipcode}} {{City}}<br>{% if County == 'NL'%}The Netherlands{% else %}{{County}}{% endif %}</p>"
建议先添加--dry-run,直到所有字段都正确填充。 标记在所有解析结束时在单个事务中创建。
贡献
如果您喜欢这个模块,分叉它,或想改进它,请让我们知道! 也欢迎拉取请求。:-)