2017-12-02 18 views
1

with QGISリーフレットで公開したいgeojsonとしてポリゴンレイヤーをエクスポートしました。 https://gist.github.com/t-book/88806d12d7f05024b147715be82e6844リーフレットでgeojson featureCollectionを表示

これはI'veが試したものです::にGeoJSONは[SO文字制限によるexluded ]どのように見えるかです

var states = [{ 
    "type": "FeatureCollection", 
    "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:EPSG::31468" } }, 
    "features": [ 
     { "type": "Feature", "properties": ... 
}]; 

:VARとして

ラップにGeoJSON新しいレイヤーとして追加されました:

L.geoJSON(states, { 
    style: function(feature) { 
     switch (feature.properties.party) { 
      case 'Euerbach': return {color: "#ff0000"}; 
      case 'Werneck': return {color: "#0000ff"}; 
     } 
    } 
}).addTo(map); 

Unfortuna何もレンダリングされません。このgeojson featureCollectionをマップに正しく追加するにはどうすればよいですか?

答えて

2

問題はあなたのデータが投影されていることです - リーフレットはあなたのデータが投影されていないことを期待しています(ロング/ラットペア、またはWGS84/EPSG 4326で "投影")。いくつかのソリューションがありますが、二人はここに頭に浮かぶ:あなたの座標ときに再投影する長い/緯度座標ペア

  • 使用proj4.jsで構成されているように

    QGISで
    • は、あなたのデータをエクスポートgeojsonを表示します。この関数の本体は、基準座標系にGeoJSON年代に座標がかかります

      var geojson = L.geoJSON(states, { 
          coordsToLatLng: function (p) { 
           // return get lat/lng point here. 
      }) 
      

    数2の場合、あなたは層としてにGeoJSONを追加coordsToLatLngオプションを設定する必要があります(CRS)を作成し、proj4を使用してWGS84に返します。

    また、coordsToLatLng関数は、緯度/経度のペアを返すことを期待しています。 geojsonとproj4が[x、y]のデータを表すので、新しいポイントを返す前に値を入れ替える必要があります。

    これは、次のようになります。もちろん

    var geojson = L.geoJSON(states, { 
        coordsToLatLng: function (p) { 
         p = proj4(fromProjection,toProjection,p); // reproject each point 
         p = [p[1],p[0]] // swap the values 
         return p;   // return the lat/lng pair 
        } 
    }).addTo(map); 
    

    、我々は我々のCRSを定義する必要があります。私はspatialreference.orgに(それがにGeoJSON自体に指定されている)あなたのCRSを見上げて、私のfromProjectionとtoPojectionを設定するために提供されるCRSの説明とEPSG4326(WGS84)を使用:

    var fromProjection = '+proj=tmerc +lat_0=0 +lon_0=12 +k=1 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs '; 
    var toProjection = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs "; 
    

    要するに、私たちに何かlike thisを与えています。 大きなファイルがある場合は、適切なCRSで書き出すよりも、javascriptで再投影する方が時間がかかります。

  • +0

    ありがとうございました! –

    関連する問題