跳转到主要内容

Wagtail中地址字段的Google Maps小部件

项目描述

# wagtailgmaps [![PyPI](https://img.shields.io/pypi/v/wagtailgmaps.svg)](https://pypi.python.org/pypi/wagtailgmaps)

> 为Wagtail字段提供简单的Google Maps地址格式化和LatLng提供程序。

*查看[Awesome Wagtail](https://github.com/springload/awesome-wagtail)以获取更多来自Wagtail社区的神奇包和资源。*

![Wagtailgmaps截图](./screenshot.png)

## 快速入门

1. 使用`pip install wagtailgmaps`安装
1. 将`wagtailgmaps`添加到`settings.py` `INSTALLED_APPS`部分。
1. 在`settings.py`文件中添加一些配置

```python
# 必需的
WAGTAIL_ADDRESS_MAP_CENTER = 'Wellington, New Zealand' # 必须是格式正确的地址
WAGTAIL_ADDRESS_MAP_KEY = 'xxx'

# 可选的
WAGTAIL_ADDRESS_MAP_ZOOM = 8 # 更多信息请参阅 https://developers.google.com/maps/documentation/javascript/tutorial#MapOptions
WAGTAIL_ADDRESS_MAP_LANGUAGE = 'ru' # 更多信息请参阅 https://developers.google.com/maps/faq#languagesupport
```

> 截至2016年6月22日,Google Maps需要API密钥。请参阅[获取密钥](https://developers.google.com/maps/documentation/javascript/get-api-key)。同时,您还需要启用[地理编码服务](https://developers.google.com/maps/documentation/javascript/geocoding)、[地图JS API](https://developers.google.com/maps/documentation/javascript/)和[静态地图API](https://developers.google.com/maps/documentation/static-maps/)

4. 使用它

```python
# myapp/models.py
from django.db import models
from wagtail.wagtailcore.models import Page
从 wagtailgmaps.edit_handlers 导入 MapFieldPanel

class MapPage(Page)
Wagtailgmaps 期望一个 `CharField`(或任何以文本输入形式渲染的字段)
formatted_address = models.CharField(max_length=255)
latlng_address = models.CharField(max_length=255)

使用 `MapFieldPanel` 就像使用 `FieldPanel` 一样
content_panels = Page.content_panels + [
MapFieldPanel('formatted_address'),
MapFieldPanel('latlng_address', latlng=True),
]
```

```html
## myapp/templates/myapp/map_page.html
<a href="http://maps.google.com/?q={{ self.formatted_address }}">打开地图(格式化地址)</a>
<a href="http://maps.google.com/?q={{ self.latlng_address }}">打开地图(经纬度地址)</a>
```

## 补充信息

### `MapFieldPanel` 选项

- `heading` - 在管理界面中显示的自定义标题,默认为 "位置"
- `classname` - 为字段添加额外的 CSS 类
- `latlng` - 字段返回一个经纬度而不是地址
- `centre` - 对此字段的自定义覆盖
- `zoom` - 对此字段的自定义覆盖

### 地址选项在钩子下是如何工作的

如果使用地址选项,则字段会根据 [Google 地理编码服务](https://developers.google.com/maps/documentation/geocoding/) 每次进行更新

地图标记被拖放到一个位置(`dragend` JS 事件)。
在地图上的某个位置发生点击(`click` JS 事件)。
在编辑字段后按下回车键(仅回车键的 `enterKey` JS 事件)。

### 故障排除

从管理界面编辑模型时,受影响的字段会显示一个地图,就像上面的截图所示。如果没有,请检查浏览器控制台以确认没有与您的 API 密钥相关的错误。

## 开发

### 版本发布

- 为新版本的发布创建一个新分支。
- 更新 [CHANGELOG](https://github.com/springload/wagtailgmaps/CHANGELOG.md)。
- 在 `wagtailgmaps/__init__.py` 中更新版本号,遵循 semver。
- 提交 PR 并合并它。
- 在合并 PR 到 master 后,使用 `make publish`(确认并输入您的密码)。
- 最后,转到 GitHub 并为新版本创建一个发布和一个标签。
- 完成!

项目详细信息


下载文件

下载适合您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分布

wagtailgmaps-1.0.1.tar.gz (14.2 kB 查看哈希值)

上传时间

支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面