哪些工具可以构建完整的交互式地图应用程序/ Web应用程序

时间:2013-05-17 18:58:56

标签: node.js openlayers geodjango mapnik tilestache

我也想构建一个Web应用程序,我正在研究我将要使用的工具。 我想使用实时地图  我在想:

Tilemill 获取.png以构建我的地图背景 或者从shp文件中的网站上获取数据,以便在mapnik中为此构建图层。

Mapnik 使用我要在地图上添加的数据构建图层。

Mapnik :将图层放在一起并生成地图。

TileStache :为我的应用生成切片。

Openlayers :在浏览器中使用图块显示我的地图。

显示我的地图后,我想添加交互性。例如,当您越过一条线或一个圆(一个城镇/一个事件)时,它会为您提供该对象的属性。

但是线条和圆圈将直接集成到mapnik地图中,因此我需要添加一些javascript以使其动态化并打开弹出窗口。我该怎么做呢 ?使用 Openlayer javascript库 node.js

您对问题/我想使用theese工具的方式有什么建议?

非常感谢!

1 个答案:

答案 0 :(得分:3)

我处于类似情况,所以我知道答案,但从我能够弄清楚我认为你走在正确的轨道上。

我开始使用Mapbox方法,只要数据是静态的,就可以简化操作。您使用Tilemill不仅可以生成PNG图块(一旦使用Carto做一些不错的样式),还可以导入数据集。

TileMill可以导出您的TileJSON和UTFGrid文件,并将PNG图块全部打包并准备使用。然后,Mapbox将为您托管所有这些内容,您可以使用他们的mapbox.js库(Leaflet的扩展名)在浏览器中将它们整合在一起,并具有完全的交互性。打开弹出窗口将是您在浏览器中使用Javascript进行的操作 - 如果您的意思是infoWindows(与地图点关联的叠加窗口),那么这将是对Leaflet API的调用。

如果您乐意创建图层并离线导入数据,这种方法似乎非常简单和强大; Mapbox甚至可以使用多个图层覆盖渲染图块 - 例如,您可以在卫星图像上看到您的圆圈,合并为单个PNG。

当您的数据需要生效时,问题确实存在,因此您无法在TileMill中提前准备好所有数据。我仍然试图弄清楚这一切,但看起来似乎TileStache和Mapnik的组合能够为你提供你需要的TileJSON,GeoJSON和UTFGrid文件以及瓷砖本身,就像这样你在问题中已经概述了。

您可能还需要PostGIS和GeoDjango或类似的幕后工作,以便分别保存和管理您的实时数据。

正如我所说,我仍然试图让我的完整堆栈工作,所以我不能保证这100%,但如果你的数据是预先收集的,那么为了简单起见,我肯定会推荐TileMill路线。 / p>

我希望这是一个帮助!