我也想构建一个Web应用程序,而我正在寻找必须使用的工具。
我想使用实时地图
我正在考虑:
Tilemill获取.png以构成我的地图的背景
或从shite文件中的网站获取数据以在mapnik中为此构建图层。
Mapnik使用要添加到地图上的数据构建图层。
Mapnik:将图层放在一起并生成地图。
TileStache:为我的应用程序生成图块。
Openlayers:在浏览器中显示带有图块的我的地图。
显示我的地图后,我想添加交互性。例如,当您越过一条线或一个圆(一个城镇/一个事件)时,它将为您提供该对象的属性。
但是直线和圆将直接集成到mapnik地图中,因此我需要添加一些JavaScript使其动态并打开弹出窗口。我该怎么做呢 ?使用Openlayer javascript库或node.js。
您对我想使用这些工具的问题/方式有何建议?
非常感谢!
最佳答案
我处于类似的情况,所以我不知道答案,但是根据我的判断,我认为您的做法正确。
我开始使用Mapbox方法,只要您的数据是静态的,它就可以简化事情。您不仅可以使用Tilemill生成PNG磁贴(一旦使用Carto进行了一些漂亮的样式化),还可以导入数据集。
TileMill可以导出您的TileJSON和UTFGrid文件,并将它们打包成PNG并准备使用。然后,Mapbox将为您托管所有这些东西,您可以使用它们的mapbox.js库(Leaflet的扩展)将它们全部整合到浏览器中,并具有完全的交互性。打开弹出窗口将是您在浏览器中的Javascript中要做的事情-如果您指的是infoWindows(与地图点关联的叠加窗口),那么它将是对Leaflet API的调用。
如果您乐于创建图层并离线导入数据,则此方法似乎非常简单且功能强大。 Mapbox甚至可以使用覆盖的多个图层来渲染图块-例如,您可以在卫星图像上方看到圆,并合并到一个PNG中。
当您的数据需要实时使用时,问题就真的出现了,因此您无法在TileMill中提前准备所有数据。我仍在尝试解决所有问题,但似乎TileStache和Mapnik的组合将能够为您提供所需的TileJSON,GeoJSON和UTFGrid文件以及tile本身您已经在问题中概述了。
您可能还希望幕后有PostGIS和GeoDjango或类似产品,以便分别保存和管理您的实时数据。
就像我说的那样,我仍然在努力使我的整个堆栈正常工作,所以我不能保证这100%的费用,但是如果您的数据是预先收集的,那么为简单起见,我绝对会推荐TileMill路线。
希望对您有所帮助!
关于node.js - 哪些工具可以构建完整的交互式 map 应用程序/Web应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16616114/