我从调用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/