Javascript 实现协作实时地图应用程序

Javascript 实现协作实时地图应用程序,javascript,google-maps,bing-maps,collaboration,Javascript,Google Maps,Bing Maps,Collaboration,实现实时协作地图应用程序的最佳方法是什么?在Google或Bing maps API的基础上构建它可能有哪些不同的方法,这些API是否提供了任何方便的方法来聚合来自不同用户的数据?我可以想象,与mapsapi本身有不同级别的集成,可能现有的软件也有类似的功能。任何提示都会很有帮助 背景:谷歌文档和其他协作编辑软件允许一组人实时编辑文档,并负责同时输入和显示其他用户的进度和光标。我想在地图应用程序中做一些类似的事情,一群人可以一起实时标记和注释地图上的位置。其想法是在自然灾害或其他需要绘制和分类大

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

背景:谷歌文档和其他协作编辑软件允许一组人实时编辑文档,并负责同时输入和显示其他用户的进度和光标。我想在地图应用程序中做一些类似的事情,一群人可以一起实时标记和注释地图上的位置。其想法是在自然灾害或其他需要绘制和分类大量地理数据的大型事件发生后立即支持大规模众包地图

此应用程序需要在浏览器中运行。同步性的水平不必像谷歌文档那样集成——也就是说,只要事情实时出现在地图上,我们就不一定要看到用户在编辑什么,他们在哪里打字。但是,它确实需要与maps API集成,因此它比使用直接协作文本编辑器更具挑战性,因为可以使用示例

在四处搜索时,我找到了许多类型的示例源代码,其中具有可用源代码的web应用程序的最佳示例是。然而,我需要把这个想法应用到一个映射问题上。在maps API和指向现有示例的指针之上构建实时应用程序的可能方法有哪些


更新:对于感兴趣的人,我最终在Meteor:上用OpenLayers构建了这个。请随意查看。

无论如何都不是一个完整的答案,但人们正在通过以下方式做一些很酷的事情:


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


这相当简单

  • 第一步。创建包含这些条目的数据库
  • 第二步。创建一个 从数据库中的记录填充点的映射
  • 第三步。为用户创建一个界面,以便向数据库中添加项目(实时)

  • 这相当简单

    • 第一步。创建包含这些条目的数据库
    • 第二步。创建一个 从数据库中的记录填充点的映射
    • 第三步。为用户创建一个界面,以便向数据库中添加项目(实时)

    根据您提供的用例场景,您可以尝试联系开放式街道地图的人道主义响应团队,该团队将OSM用作危机响应情况下的协作地图数据收集和传播工具:


    严格说来,这不是实时的,但如果您拥有自己的OSM服务器,您可以将地图分幅设置为在每次提交更新时重新生成,然后所有用户都将收到地图的最新视图。

    根据您提供的用例场景,您可以尝试联系开放街道地图上的人道主义响应团队,世卫组织将OSM用作危机应对情况下的协作地图数据收集和传播工具:


    严格说来,它不是实时的,但如果您拥有自己的OSM服务器,您可以设置地图分幅,以便在每次提交更新时重新生成,然后所有用户都将收到地图的最新视图。

    用于实现协作部分的后端解决方案将是google realtime api

    还有firebase:


    我不知道这将如何实现,但如果您知道如何将地图编辑存储在数据结构上,您所需要做的就是将该数据结构与上述api之一绑定,您基本上就完成了。

    用于实现协作部分的后端解决方案将是google realtime api

    还有firebase:

    我不知道这将如何实现,但如果您知道如何将地图编辑存储在数据结构上,您所需要做的就是将该数据结构与上述API之一绑定,您基本上就完成了。

    这里有一个链接
    您可以浏览此PDF。
    它让您了解协作编辑器的工作内容和工作方式。
    它提供了有关他们使用的架构和设计的详细信息。

    这里有一个链接
    您可以浏览此PDF。
    它让您了解协作编辑器的工作内容和工作方式。

    它提供了有关他们使用的架构和设计的详细信息。

    步骤1和2非常明显。我想要的是关于如何执行步骤3的更多细节。你如何实时处理事情?地图API是否同步注释,或者是否需要在地图顶部作为单独的层进行同步?等等。投票将是一种方式。拥有一个返回任何新条目的Web服务,并定期使用该Web服务的map poll页面。然后解析json响应并将其作为标记插入映射。轮询?你一定是在开玩笑。Websocket和其他双向技术已经使轮询过时。看看Shaun发布的内容,这与我需要做的非常相似。嘿,是你让我为你写网站的。如果你不需要我的帮助,那没关系。也许你应该先做些实际的工作,然后再问别人该做什么。哦,对了,我忘了!不考虑设计或工具而继续编码绝对是在项目上取得进展的最佳方式!步骤1和2非常明显。我想要的是关于如何执行步骤3的更多细节。你如何实时处理事情?地图API是否同步注释,或者是否需要在地图顶部作为单独的层进行同步?等等。投票将是一种方式。拥有一个返回任何新条目的Web服务,并且