2016-05-17 26 views
1

我有一些問題將SQL錶轉換爲GeoJSON。OGR SQL Server到GeoJSON

這是我的連接字符串:

ogr2ogr -f "GeoJSON" "test.geojson" "MSSQL:server=(LocalDb)\v11.0;database=SpatialDataExamples;tables=test;trusted_connection=yes;Integrated Security=true;DRIVER=SQL Server Native Client 11.0;GeometryType=wkb;" -sql "SELECT * FROM test WHERE ID=1" 

如果我使用的表參數,並沒有SQL中,以GeoJSON正確出口。如果我指定一些sql來過濾結果,則幾何圖形在導出的文件中以二進制形式返回。

我想將一個SQL多邊形表導出到我可以在DocumentDB中使用的單個文檔。

導出shape文件直接產生在右手方向座標GeoJSON的所要求的DocumentDB

任何建議,而不是左手?

回答

1

所以,這就是我所做的,它已經奏效。

UPDATE tablename SET geom = geom.MakeValid() 
UPDATE tablename SET geom = geom.STUnion(geom.STStartPoint()); 
  • 使用ogr2​​ogr輸出全層以GeoJSON:使用Shape2SQL

  • 正確使用(定向逆時針時尚外環)幾何

    1. 上傳shape文件到SQL Server

    2. 在QGIS中添加爲圖層
    3. 使用以下python腳本循環通過^ h每一個功能,選擇並出口到GeoJSON的文件

      import qgis.core 
      import qgis.utils 
      i = qgis.utils.iface 
      l = i.activeLayer() 
      j=0 
      for feat in l.getFeatures(): 
      l.setSelectedFeatures([feat.id()]) 
      qgis.core.QgsVectorFileWriter.writeAsVectorFormat(l,'c:/ConvertedShapefiles/shape'+str(j)+'.json', 'utf-8', l.crs(), 'GeoJson', True) 
      l.removeSelection() 
      j += 1