【问题标题】:Implementing a collaborative real-time mapping application实施协作式实时地图应用程序
【发布时间】:2013-05-31 02:01:20
【问题描述】:

实现实时协作地图应用程序的最佳方法是什么?在 Google 或 Bing 地图 API 之上构建它可能有哪些不同的方法,这些 API 是否提供任何方便的方法来聚合来自不同用户的数据?我可以想象地图 API 本身存在不同级别的集成,以及可能执行类似操作的现有软件。任何指示或提示都会有所帮助。

背景:Google Docs和其他协同编辑软件可以让一群人实时编辑一个文档,并负责同时输入和显示其他用户的进度和光标等事情.我想用一个地图应用程序做类似的事情,一群人可以一起在地图上实时标记和注释位置。这个想法是在自然灾害或其他需要对大量地理数据进行映射和分类的大型事件后立即支持大规模众包映射。

此应用需要在浏览器中运行。同步级别不必像谷歌文档那样集成——也就是说,只要地图上实时显示内容,我们就不必查看用户在哪里编辑以及他们在哪里打字。但是,它确实需要与地图 API 集成,因此它比使用直接的协作文本编辑器更具挑战性,因为它提供了示例。

在四处搜索中,我找到了许多类型的 collaborative text editing 的示例源代码,其中提供源代码的 Web 应用程序的最佳示例是 Etherpad。但是,我需要将这个想法应用于映射问题。在地图 API 和指向现有示例的指针之上构建实时应用程序有哪些可能的方法?

更新:对于感兴趣的人,我最终在 Meteor 之上使用 OpenLayers 构建了它:https://github.com/mizzao/CrowdMapper。请随意查看。

【问题讨论】:

    标签: javascript google-maps bing-maps collaboration


    【解决方案1】:

    无论如何都不是一个完整的答案,但人们正在用 Meteor 做很酷的事情:

    http://www.fargeo.com/blog/using-meteor-for-real-time-geospatial-data/

    http://meteor.com/#examples/parties

    【讨论】:

    • +1 使用实时地理空间地图对 Meteor 的引用非常棒。令人惊讶的是,他在几个小时内创造了这个。会进一步研究!
    【解决方案2】:

    鉴于您提供的用例场景,您可以尝试联系 Open Street Map 的人道主义响应团队,他们在危机响应情况下使用 OSM 作为协作地图数据收集和传播工具:http://wiki.openstreetmap.org/wiki/Humanitarian_OSM_Team

    这不是严格实时的,但如果您托管自己的 OSM 服务器,则可以设置每次提交更新时重新生成地图图块,然后所有用户都会收到地图的最新视图。

    【讨论】:

    • 谢谢。 Shaun 链接的 Meteor 应用程序是实时的,并且还使用 OSM,所以我会检查一下。
    【解决方案3】:

    这很简单。

    • 步骤 1. 创建一个包含条目的数据库
    • 步骤 2. 创建一个 从数据库中的记录中填充点的地图
    • 第 3 步。创建一个界面,供人们将项目添加到数据库(实时)。

    【讨论】:

    • 第 1 步和第 2 步非常明显。我要的是有关如何执行第 3 步的更多详细信息。您如何实时执行操作?地图 API 是否会同步注释,还是需要作为地图顶部的单独图层来完成?等
    • 轮询将是要走的路。拥有一个返回任何新条目的 web 服务,并让带有地图的页面定期轮询该 web 服务。然后解析 json 响应并将它们作为标记插入到地图中。
    • 投票?你一定在开玩笑。 Websocket 和其他双向技术已经过时了轮询。看看Shaun发布的内容,和我需要做的很相似。
    • 嘿,您是让我为您编写网站的人。如果你不想要我的帮助,那很好。也许你应该在问别人做什么之前先做一些实际的工作。
    • 哦对了,我忘了!在不考虑设计或工具的情况下继续编码绝对是在项目中取得进展的最佳方式!
    【解决方案4】:

    实现协作部分的后端解决方案是 google realtime api https://developers.google.com/drive/realtime/realtime-quickstart

    还有火力基地: https://www.firebase.com/how-it-works.html

    我不知道这将如何实现,但如果您知道如何将地图的编辑内容存储在数据结构上,您只需将该数据结构与上述 API 之一联系起来,您基本上就完成了.

    【讨论】:

    • Meteor 被证明是完美的数据结构。它可以很好地与任何非实时 API 配合使用,并且连接了正确的回调。
    【解决方案5】:

    这是一个链接http://scholar.lib.vt.edu/theses/available/etd-05032001-113750/unrestricted/FinalThesis.pdf
    您可以浏览此 PDF。
    它让您深入了解协作编辑器的工作原理和方式。
    它提供了有关他们正在使用的架构和设计的详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-18
      • 2016-09-17
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多