我正在考虑创建一个显示城市 map 的 Web 应用程序(来自 openstreetmaps 数据)。我想在上面创建一个代表标记的层。我预见到我将拥有一个包含众多标记的数据库,这些标记将作为图层显示在 map 上。我遇到过 openstreetmap、openlayers、geodjango 等,但无法弄清楚如何将所有这些组合在一起来解决我的问题。我很习惯使用 Django 和 Python。谁能帮助我理解以下内容:
- 如何使用 Django 在我自己的服务器上托管 OSM 数据并充当 openlayers 的 map 服务器(或 map 源)?
- 如何让 openlayer 与该服务器通信以渲染 map 或叠加层?
如果我的问题的某些部分没有意义,我很抱歉;这是因为我目前对这些组件的理解还很模糊。
请您参考如下方法:
在坐标处显示标记是比较容易的部分。更难的部分是托管您自己的 basemap 。这是我认为您可以做到的一种方法:
- 获取您感兴趣的区域的 OpenStreetMap 数据。
- 为您的 map 开发样式表,或使用现有样式表。 Mapnik 是一个选项。
- 使用 Tilecache 提供各种比例级别的缓存 map 图 block 。这必须与您的 Django 应用程序一起运行。
另一种选择是使用 Tiledrawer设置 Amazon EC2 服务器为您的 basemap 提供服务,而无需手动配置所有内容。
Stack Overflow 只允许我发布两个链接,因此您必须搜索 Tilecache 和 Mapnik 的网站,但它们很容易找到。
引用资料:
