此应用程序使显示给定地址的地图变得容易
django-easy-maps的Python项目详细描述
安装
首先安装模块,最好是在虚拟环境中。它可以从pypi安装:
pip install django-easy-maps
设置
您需要将easy_maps添加到项目的settings.py文件中的INSTALLED_APPS中:
INSTALLED_APPS+=['easy_maps',]
然后运行./manage.py migrate创建所需的数据库表。
配置
唯一必需的配置是EASY_MAPS_GOOGLE_KEY变量:
EASY_MAPS_GOOGLE_KEY='ABCDEFGHIJKLMNOPQRSTUVWXYZ___0123456789'
如果在没有插入地址的情况下需要一个位置将地图居中 但是,将纬度和经度添加到 您的settings.py如下:
EASY_MAPS_CENTER=(-41.3,32)
请参阅example应用程序。此应用程序用于 手动测试此包的功能。这也可以作为 一个很好的例子。
你需要django 1.8或更高版本来运行它。它可能在旧版本上运行,但未经测试。
用法
首先,在要使用的每个模板中加载easy_map_tags:
{%loadeasy_maps_tags%}
使用:
{%easy_map<address>[<width><height>][<zoom>][using<template_name>]%}
例如:
{%loadeasy_maps_tags%}<!-- Default map with 300x400 dimensions -->{%easy_map"Russia, Ekaterinburg, Mira 32"300400%}<!-- Variable address, custom detail level and custom template -->{%easy_mapaddress2002005using"map.html"%}
地图的坐标将首先使用谷歌地理编码器获得 进入。然后它们将被缓存在数据库中。可以使用django的模板缓存 以后为了防止在每个贴图渲染上访问数据库:
{%loadeasy_maps_tagscache%}{%cache600my_mapfirm.address%}{%easy_mapfirm.address300400%}{%endcache%}
模板
如果默认映射模板不足,则自定义映射模板可以 使用。例如:
{%easy_mapaddressusing"map.html"%}{%easy_mapaddress2003005using"map.html"%}
模板将具有map(easy_maps.Address实例 在第一次访问时为传递的地址自动创建,width,height 以及zoom变量。外部模板上下文传递给呈现的 模板也一样。
您可以从头开始创建自己的模板,也可以重写 默认模板。
请参阅https://developers.google.com/maps/documentation/javascript/了解 详细的google地图javascript api帮助。
小部件
django-easy-maps提供了一个基本的小部件,它在地址下显示一个映射 字段。它可以在管理员中用于地图预览。例如:
fromdjangoimportformsfromdjango.contribimportadminfromeasy_maps.widgetsimportAddressWithMapWidgetfrom.modelsimportFirmclassFirmAdmin(admin.ModelAdmin):classform(forms.ModelForm):classMeta:widgets={'address':AddressWithMapWidget({'class':'vTextField'})}admin.site.register(Firm,FirmAdmin)
address字段应该是CharField或TextField。
贡献
如果你发现了一个bug,实现了一个特性或者定制了模板 觉得有用的话请考虑贡献。修补程序、拉取请求或 欢迎提出建议!
许可证
django-easy-maps是在mit许可下发布的。