此应用程序使得在给定的地址上显示地图变得容易。
项目描述
django-easy-maps
此应用程序使得在 django 模板中显示任何给定地址的地图变得容易。无需手动地理编码、html/js复制粘贴或Django模型更改。
由 Mikhail Korobov 编写,以及一些优秀的 贡献者。
安装
首先安装模块,最好在虚拟环境中。可以从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 变量,如下所示
EASY_MAPS_CENTER = (-41.3, 32)
其他可选设置
# Optional
EASY_MAPS_ZOOM = 8 # Default zoom level, see https://developers.google.com/maps/documentation/javascript/tutorial#MapOptions for more information.
EASY_MAPS_LANGUAGE = 'ru' # See https://developers.google.com/maps/faq#languagesupport for supported languages.
请参阅示例应用程序。该应用程序用于手动测试此包的功能。它也是一个很好的示例。
您需要 Django 1.8 或更高版本才能运行。它可能在旧版本上运行,但未经过测试。
用法
首先,在您想使用的地方的每个模板中加载 easy_map_tags
{% load easy_maps_tags %}
使用
{% easy_map <address> [<width> <height>] [<zoom>] [using <template_name>] %}
例如
{% load easy_maps_tags %}
<!-- Default map with 300x400 dimensions -->
{% easy_map "Russia, Ekaterinburg, Mira 32" 300 400 %}
<!-- Variable address, custom detail level and custom template -->
{% easy_map address 200 200 5 using "map.html" %}
地图坐标将在首次访问时使用 Google 地理编码器获取。然后它们将被缓存在数据库中。可以使用 Django 模板缓存来防止在每次渲染地图时访问数据库
{% load easy_maps_tags cache %}
{% cache 600 my_map firm.address %}
{% easy_map firm.address 300 400 %}
{% endcache %}
模板
如果默认地图模板不足够,则可以使用自定义地图模板。例如
{% easy_map address using "map.html" %}
{% easy_map address 200 300 5 using "map.html" %}
模板将具有 map(首次访问时自动创建 easy_maps.Address 实例,用于传递的地址),width,height 和 zoom 变量。外部模板上下文也传递给渲染的模板。
您可以从头开始创建自己的模板,或者只需覆盖默认模板中的某些块。
有关详细的 Google Maps JavaScript API 帮助,请参阅 https://developers.google.com/maps/documentation/javascript/
小部件
django-easy-maps 提供了一个基本的小部件,该小部件可以在地址字段下方显示地图。它可用于管理地图预览。例如
from django import forms
from django.contrib import admin
from easy_maps.widgets import AddressWithMapWidget
from .models import Firm
class FirmAdmin(admin.ModelAdmin):
class form(forms.ModelForm):
class Meta:
widgets = {
'address': AddressWithMapWidget({'class': 'vTextField'})
}
admin.site.register(Firm, FirmAdmin)
address 字段应该是 CharField 或 TextField。
贡献
如果您发现了错误,实现了功能或自定义了模板,并认为它很有用,那么请考虑做出贡献。补丁、拉取请求或只是建议都受欢迎!
许可证
django-easy-maps 采用 MIT 许可证发布。
django-easy-maps-1.1.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f8ef8545edb6fa956d5af80da6e1ca95011be035a27df019cbac9bde6d71a485 |
|
MD5 | 8a676ed32b0e1c4a9abfae3ae2d76639 |
|
BLAKE2b-256 | adfdcf55555141e72eb4edc71d572ea13fa88bb72c57d83f772b7721c9f2ebc5 |
django_easy_maps-1.1.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 975f5b5c819ed83fd95d7bb99b3fb8927e6d4841de1cc7006d405f412e6020e5 |
|
MD5 | e87d8862674ca1d5eed5c2994124d125 |
|
BLAKE2b-256 | 85211983fd9c3a13ddd9c49b187a4830dd1eb25f382a44c061bc2253721b6435 |