Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Google地图中删除GeoJson层_Javascript_Google Maps_Geojson - Fatal编程技术网

Javascript 从Google地图中删除GeoJson层

Javascript 从Google地图中删除GeoJson层,javascript,google-maps,geojson,Javascript,Google Maps,Geojson,我正在尝试使用Turp.js库从Google Maps中删除GeoJson层数组,以平滑多边形线 我可以很好地创建图层并将其添加到地图中,但当我尝试删除图层时,会出现以下错误代码: Uncaught TypeError: a.getId is not a function 要添加层,我会这样做,通过我的GeoJson文件循环 else if(Type==="LineString" && Pype==="isobar") { //DO ISOBARS STUFF=========

我正在尝试使用Turp.js库从Google Maps中删除GeoJson层数组,以平滑多边形线

我可以很好地创建图层并将其添加到地图中,但当我尝试删除图层时,会出现以下错误代码:

Uncaught TypeError: a.getId is not a function
要添加层,我会这样做,通过我的GeoJson文件循环

else if(Type==="LineString" && Pype==="isobar") {
//DO ISOBARS STUFF=================================
//GET LNG/LAT======================================
CorrLEN     = dataID1.features[i].geometry.coordinates.length;
var Corrds =[];
var Corrs =[];
var LNGLAT ={};
var CORRS  = new Object();
var  x=0;
for (x=0;x<CorrLEN;x++){
var  a = x-1;
LNGLAT = (dataID1.features[i].geometry.coordinates[x]); 
Corrds.push(LNGLAT);
}
//=================================================================
//GET COLOUR INFO===================================================
var STCL = dataID1.features[i].properties.strokeColor;
var STOP = dataID1.features[i].properties.strokeOpacity;
var STSW = dataID1.features[i].properties.strokeWeight;
//=================================================================
LL     = turf.linestring(Corrds);  
curved = turf.bezier(LL,20000, 0.35);  
curved.properties = {weight:STSW,color:STCL};
map.data.setStyle(function(feature) {
return {strokeWeight:feature.getProperty('weight'),
        strokeColor: feature.getProperty('color')
       };            
 });
IsoBars.push(curved);
else if(Type==“LineString”&&Pype==“isobar”){
//做等压线的事吗=================================
//获取LNG/LAT======================================
CorrLEN=dataID1.features[i].geometry.coordinates.length;
var-Corrds=[];
var-Corrs=[];
var LNGLAT={};
var CORRS=新对象();
var x=0;

对于(x=0;x我找到了一个解决方案,采用新的平滑坐标,然后在新的google.maps.Polyline中使用它们,就像这样

 var Path =[];
 var  x=0;
 for (x=0;x<CorrLEN;x++){
 Path.push(new google.maps.LatLng(curved.geometry.coordinates[x][1],curved.geometry.coordinates[x][0])); 
 } 
 var IsoBar = new google.maps.Polyline({
           path: Path,
           geodesic: true,
           strokeColor: STCL,
           strokeOpacity: STOP,
           strokeWeight: STSW
           });

 IsoBars.push(IsoBar);
var路径=[];
var x=0;

对于(x=0;x我找到了,而不是从层中删除所有对象。破坏和重新创建层更容易,从而避免了错误:

  //Remove layer from map if it exists
  if (mapLayer != null) {

    mapLayer.setMap(null);
  }

  //create new layer
  mapLayer = new window.google.maps.Data({ map: googleMap });
function ShowIsoBars() {
for (var i = 0; i < IsoBars.length; i++) { 
IsoBars[i].setMap(map);
}}

function HideIsoBars() {
for (var i = 0; i < IsoBars.length; i++) { 
IsoBars[i].setMap(null);
}}
  //Remove layer from map if it exists
  if (mapLayer != null) {

    mapLayer.setMap(null);
  }

  //create new layer
  mapLayer = new window.google.maps.Data({ map: googleMap });