2017-12-13 25 views
0

지도 상자 - 글자 및 전단지 맵을 만들었으며 플러그인 전단지 - 끌기를 사용하여 레이어를 추가 및 편집하려고합니다.전단지 가져 오기 및 저장된 데이터 오류 가져 오기

플러그인이 제대로 작동합니다. geojson을 사용하여 경로 (다중 선)를 만들고 저장할 수 있습니다. 내가 저장 한 데이터를 포함지도를 다시로드 할 때

나는 오류가 발생했습니다 :

TypeError: dataLayer.push is not a function 
TypeError: a.slice is not a function 

plyline지도에 있지만 나는 그것을 수정하려고하면 (폴리 라인 색상을 변경합니다 ("편집 층"버튼을 클릭) 이는 선택된 것을 의미 함) 앵커 포인트가 표시되지 않으며 끌거나 편집 할 수 없습니다.

dataLayer은 새 데이터를 포함하여 내가 만든 레이어입니다.

JSON 데이터는 http://geojson.io/#map=19/44.93382/9.67409에서 확인되며 정상적으로 보입니다.

dataLayer이 올바르지 않다고 생각합니다.

// ADD data stored in DB 
    var geojson = { 
    "type": "FeatureCollection", 
    "features": [ 
    { 
     "type": "Feature", 
     "properties": {}, 
     "geometry": { 
     "type": "LineString", 
     "coordinates": [ 
      [ 
      9.67420756816864, 
      44.93391475147485 
      ], 
      [ 
      9.674186110496521, 
      44.93359955072641 
      ] 
     ] 
     } 
    }, 
    { 
     "type": "Feature", 
     "properties": {}, 
     "geometry": { 
     "type": "Point", 
     "coordinates": [ 
      9.67420756816864, 
      44.933929941828694 
     ] 
     } 
    } 
    ] 
}; 

    var dataLayer = L.geoJson(geojson); 

    // featureGroup is the layer editable 
    var featureGroup = L.featureGroup(); 

    // add data from DB to editable layer 
    dataLayer.addTo(featureGroup); 

    // add editable layer to the Map 
    featureGroup.addTo(map); 

내 코드에 무슨 문제가 있습니까?

답변

0

Geojson 표준에는 추가 기능이 없으므로 패스 만 있고 th 앵커 포인트 (직사각형)와 같은 추가 항목은 없습니다. 이 문제를 해결하려면 코드를 다음과 같이 수정해야합니다.

// featureGroup is the layer editable 
    var featureGroup = L.featureGroup(); 
    featureGroup.addTo(map); 


    L.geoJson(geojson, { 
     onEachFeature: function (feature, layer) { 
      if (layer.getLayers) { 
       layer.getLayers().forEach(function (l) { 
        featureGroup.addLayer(l); 
       }) 
      } else { 
       featureGroup.addLayer(layer); 
      } 
     } 
    });