maps - Google Maps GeoJSON-切换标记层吗?

标签 maps toggle layer geojson markers

我从调用PostGIS数据库返回了一些GeoJSON。我希望能够为每个功能添加一个标记,并能够切换不同类型的标记/功能。目前,我正在使用JavaScript为每个功能生成一个标记,然后根据类型将它们添加到数组中,然后根据需要遍历数组设置show/hide来切换“图层”。

可以,但是我想知道新的GeoJSON功能是否提供了更好的方法。据我所知,所有功能都添加到同一数据层,并且切换它们的集合将涉及设置样式或仅替换为新的,预先过滤的GeoJSON。

因此,问题在于是否可以有多个数据层,并轻松地从 map 中添加/删除它们,还是我最好看看OpenLayers之类的东西?

编辑:更多的研究表明这很简单。

对于我们要打开的要素集中的每种要素类型,创建一个新的Data对象。将所有相关功能添加到该数据对象。

var datalayer = new google.maps.Data();
datalayer.addGeoJson(feature);
datalayer.setMap(mainmap);

然后将每个数据对象/功能类型存储为键值对。切换时,请拉出相关的数据对象并根据需要设置setMap:
var datalayer= featuretypesobj["feature type to toggle"];
datalayer.setMap(mymap); //or
datalayer.setMap(null);

最佳答案

您也可以创建单独的图层

var layer_1 = new google.maps.Data();
var layer_2 = new google.maps.Data();

然后填充它,例如与json数据
layer_1.loadGeoJson('/path/to/data.json');
layer_2.loadGeoJson('/path/to/data2.json');

然后在 map 上添加/删除它们
layer_1.setMap(map);
layer_2.setMap(map);
layer_1.setMap(null);

关于maps - Google Maps GeoJSON-切换标记层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23007846/

相关文章:

java - 使用 java map 进行范围搜索

Jquery Google map 类插件 - 使用自定义 map /图像和添加标记的能力

Android google maps v2 mapfragment 或 fragment 内的 mapview

Jquery Toggle 两个功能在 1.10.1 中不起作用

javascript - 制作javascript按钮来隐藏或显示内容切换

html - 背景图像在低分辨率下偏移页面(导致水平滚动条)

javascript - 为什么 JPG 图像在本地浏览器中可以正常运行,但在 Google 在线 map 中却不能运行?

css - 单击 div 到底层元素

ios - 实时更改 View 渐变背景

javascript - jQuery 1.9 和 slideToggle 的问题