我意识到我的知识中存在一些概念上的差距 - 我并不是100%清楚地知道Mapbox中的所有内容是如何组合在一起的。希望有人可以帮我直截了当,帮助我实现我想要做的事情。
我们的客户是一家跨国公司,其地理位置分为全球区域:北美,南美,欧洲和欧洲。非洲,亚太地区等
他们想要的是初始地图视图是缩小的世界地图。当这些单个区域中的每个区域都被覆盖时,属于该区域的国家/地区将突出显示,标签将显示该区域的名称,单击将缩放视口以居中/显示该区域。
问题是地图中没有区域概念,我不确定如何以编程方式添加区域。
底层国家地图是由设计师使用TileMill创建和设计的。它使用自然地球国家地图。当我在TileMill中查看项目并检查图层“features”时,shapefile似乎有一个包含一些关联元数据的各个国家/地区的列表。到目前为止一切都很好。
理想情况下,在客户端,我会列出属于每个地区的国家/地区列表。当用户将鼠标悬停在某个国家/地区时,我会找出它所属的区域,遍历国家/地区列表并应用效果(如不透明度)来突出显示该区域。
问题是,我无法弄清楚如何在TileMill文件中获取当前正在被鼠标悬停的国家/地区的国家/地区元数据。是否可以附加事件并访问TileMill中添加的功能?
仅供参考:我尝试的另一种方法是在运行时添加this地图数据。我能够将事件附加到GeoJSON功能,但是地图的粒度比底层地图低,因此在更高的缩放级别时它不能正确排列。
答案 0 :(得分:1)
问题是地图中没有区域概念,我不确定如何以编程方式添加区域。
好的,这里要理解的基本要素是你在TileMill中添加的交互性与Mapbox.js中GeoJSON的交互性之间的区别。