2016-05-12 13 views
0

これは、リーフレットを使用してjavascriptおよびGeoJSONで作業する初めての試みです。 これまでのところ、私は希望のマップとleaflet.drawプラグインを使って、シェイプを描くことができ、画面に表示されます。 私はRで使用したいGeoJSONにこの図形を書き込もうとしました。 GeoJSON文字列を作成するには、hereという提案を使用しました。私の希望する情報は変数shape_for_dbに保存されていると思います。 しかし、FirefoxでFirebugを使用すると、この変数を見つけることができません。 ここに何か問題がありますか?あなたのshape_for_dbためLeafletDrawからGeoJSONへのポリゴン

<html> 
<head> 
    <title>A Leaflet map!</title> 
    <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet/v1.0.0-rc.1/leaflet.css" /> 
    <link rel="stylesheet" href="http://leaflet.github.io/Leaflet.draw/leaflet.draw.css" /> 
    <script src="http://cdn.leafletjs.com/leaflet/v1.0.0-rc.1/leaflet.js"></script> 
    <script src="jquery-2.1.1.min.js"></script> 
    <script src="http://leaflet.github.io/Leaflet.draw/leaflet.draw.js"></script> 
    <style> 
    #map{ width: 100%; height: 100%; } 
    </style> 
</head> 

<body> 


    <div id="map"></div> 

    <script> 

    // base map 
    var map = L.map('map').setView([51.25,10.57], 8); 

    // load a tile layer 
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', 
    { 
     attribution: 'Tiles by: OpenStreetMaps', 
     maxZoom: 17, 
     minZoom: 5 
    }).addTo(map); 

// Initialise the FeatureGroup to store editable layers 
var drawnItems = new L.FeatureGroup(); 
map.addLayer(drawnItems); 

// Initialise the draw control and pass it the FeatureGroup of editable layers 
     var drawnItems = new L.FeatureGroup(); 
     map.addLayer(drawnItems); 

     var drawControl = new L.Control.Draw({ 
      edit: { 
       featureGroup: drawnItems 
      } 
     }); 
     map.addControl(drawControl); 

     map.on('draw:created', function (e) { 
      var type = e.layerType, 
       layer = e.layer; 
      drawnItems.addLayer(layer); 
     }); 
// Shape to GeoJSON 
map.on('draw:created', function (e) { 
    var type = e.layerType; 
    var layer = e.layer; 
    var shape = layer.toGeoJSON() 
    var shape_for_db = JSON.stringify(shape); 
}); 

    </script> 
</body> 
</html> 

答えて

0

範囲はdraw-createdのためのあなたの2番目のリスナーの内側にある: これは私が使用していたスクリプトです。あなたは一度限りの実験的/遊び方のアプローチのためにこれをやっており、あなたのdevコンソール/ Firebugを使いたいなら、window.shape_for_dbに置くことができます。または、リスナーの外側にvar shape_for_dbを設定します。