Javascript 如何设计具有主干的地图应用程序?

Javascript 如何设计具有主干的地图应用程序?,javascript,backbone.js,coffeescript,leaflet,Javascript,Backbone.js,Coffeescript,Leaflet,因此,我想构建一个带有主干的地图应用程序(可能使用moulate.js)。我对如何设计这个有一些想法,我想知道是否有一个共同的设计模式如何做到这一点 地图最终将与其他可视化集成-例如,如果我在地图上选择一个标记,则在另一个可视化中会发生一些事情。我还必须能够在地图上的标记上进行地理搜索 我有两种方法可以做到这一点- 1.每个标记有一个主干模型,有一个标记集合,有一个在此集合上工作的地图视图。因此,每当此集合发生更改时,请重新渲染贴图 2.有一个名为MapModel的模型,该模型保存json,并有

因此,我想构建一个带有主干的地图应用程序(可能使用moulate.js)。我对如何设计这个有一些想法,我想知道是否有一个共同的设计模式如何做到这一点

地图最终将与其他可视化集成-例如,如果我在地图上选择一个标记,则在另一个可视化中会发生一些事情。我还必须能够在地图上的标记上进行地理搜索

我有两种方法可以做到这一点-

1.每个标记有一个主干模型,有一个标记集合,有一个在此集合上工作的地图视图。因此,每当此集合发生更改时,请重新渲染贴图

2.有一个名为MapModel的模型,该模型保存json,并有一个过滤json的数据函数(基于geosearch或其他东西)。然后,映射简单地呈现这个json

1的优点是,我认为它很容易进行选择,但由于我的地图可能处理数万到数十万个对象,我觉得事情会非常缓慢

有没有其他方法可以做到这一点,或者我的两个想法中哪一个更可取


谢谢

我一直在研究完全相同的问题,我并不声称找到了“通用设计模式”,但我可以告诉你我做了什么

我创建了一个MapModel,其中包含制作地图所需的信息:例如,如果您想在地图上放置商店,则创建一个商店集合

然后,我创建了一个没有标记集合的地图视图:问题是传单中的一组标记应该分组在L.LayerGroup类中(例如,控制何时添加或删除它们)。因此,在图层组和集合中伪装成模型让标记看起来非常笨拙

因此,我创建了一个包含所有标记的图层组,该图层是MapView的属性。如果你的应用程序很复杂,你甚至可以为每个层创建一个子视图

当您想要过滤时,您可以在模型上过滤,这很容易,因为它是一个主干集合,然后渲染视图

我的地图可以处理成千上万的物体

这是有问题的。在webmap上放置如此大量的标记是不可能的,您应该计划如何处理它()