实施实时协作制图应用程序的最佳方法是什么?在Google或Bing地图API之上构建它的可能的不同方法是什么,这些API是否提供了聚合来自不同用户的数据的任何方便方法?我可以想象,与地图API本身有不同程度的集成,以及可能存在类似事物的现有软件。任何指针或提示都会有所帮助。
背景:Google文档和其他协作编辑软件允许一组人实时编辑文档,并处理诸如同时输入和显示其他用户的进度和光标等内容。我想做一些与地图应用程序类似的事情,其中一群人可以实时地在地图上标记和注释位置。这个想法是在自然灾害或其他需要映射和分类大量地理数据的大型活动后立即支持大规模众包映射。
此应用需要在浏览器中运行。同步性水平不必像Google文档那样集成 - 即,只要事物在地图上实时显示,我们就不一定要看到用户在哪里编辑以及他们在哪里打字。但是,它确实需要与地图API集成,因此比使用直接协作文本编辑器更具挑战性,可以使用示例。
在搜索时,我找到了许多类型collaborative text editing的示例源代码,其中包含可用源代码的网络应用的最佳示例是Etherpad。但是,我需要将这个想法应用于映射问题。有哪些方法可以在地图API和指向现有示例的指针上构建实时应用程序?
更新:对于有兴趣的人,我最终在Meteor上使用OpenLayers构建了这个:https://github.com/mizzao/CrowdMapper。请随意查看。
答案 0 :(得分:3)
在任何情况下都不是一个完整的答案,但人们正在用Meteor做一些很酷的事情:
http://www.fargeo.com/blog/using-meteor-for-real-time-geospatial-data/
答案 1 :(得分:1)
根据您提供的用例场景,您可以尝试联系Open Street Map的人道主义响应团队,他们在危机应对情况下使用OSM作为协作地图数据收集和传播工具:http://wiki.openstreetmap.org/wiki/Humanitarian_OSM_Team
这不是严格的实时,但如果你托管自己的OSM服务器,你可以设置每次提交更新时重新生成的地图图块,然后所有用户都会收到地图的最新视图。
答案 2 :(得分:0)
这很简单。
答案 3 :(得分:0)
用于实施协作部分的后端解决方案将是google realtime api https://developers.google.com/drive/realtime/realtime-quickstart
还有firebase: https://www.firebase.com/how-it-works.html
我不知道如何实现它,但如果您知道如何在数据结构上存储地图的编辑,那么您需要做的就是将该数据结构与上述API中的一个相结合,您基本上已经完成了
答案 4 :(得分:0)
这是一个链接http://scholar.lib.vt.edu/theses/available/etd-05032001-113750/unrestricted/FinalThesis.pdf
您可以浏览此PDF
它让您深入了解协作编辑器的工作原理和方式
它提供了有关他们正在使用的架构和设计的详细信息。