2016-05-17 23 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