我通过调用PostGIS数据库返回了一些GeoJSON.我希望能够为每个功能添加标记,并能够切换不同类型的标记/功能.目前我正在使用JavaScript为每个功能生成一个标记,根据类型将它们添加到数组中,然后根据需要通过数组设置show/hide来切换'layers'.
这工作正常,但我想知道新的GeoJSON功能是否提供了更好的方法.据我所知,所有功能都被添加到同一个数据层,并且切换它们将涉及设置样式或仅替换新的预过滤的GeoJSON.
所以问题是,是否可以拥有多个数据层,并可以轻松地从地图中添加/删除它们,或者我最好不要查看类似OpenLayers的内容?
编辑:更多研究表明它非常简单.
对于要切换的要素集合中的每种要素类型,请创建新的Data对象.将所有相关功能添加到该数据对象.
var datalayer = new google.maps.Data();
datalayer.addGeoJson(feature);
datalayer.setMap(mainmap);
Run Code Online (Sandbox Code Playgroud)
然后将每个数据对象/要素类型存储为键值对.在切换时,根据需要拉出相关数据对象和setMap:
var datalayer= featuretypesobj["feature type to toggle"];
datalayer.setMap(mymap); //or
datalayer.setMap(null);
Run Code Online (Sandbox Code Playgroud) 是否可以使用Google Maps API创建多个数据层?我能找到的唯一现有的相关问题是这个.
这是我的问题.
我希望有一个数据层用于在地图上展示由用户绘制的多边形.同时我想要另一个数据层来显示数据库中已存在的多边形.
我想我会通过创建2个数据层来做到这一点:
drawLayer = new google.maps.Data();
savedLayer = new google.maps.Data();
Run Code Online (Sandbox Code Playgroud)
但是当我使用初始化绘图工具时drawLayer.setControls(['Polygon']),它不起作用.如果我更换drawLayer用map.data,然后将绘图工具正常工作.这是为什么?
JSFiddle: http ://jsfiddle.net/pjaLdz6w/