Lagi

Konversi tabel spasial SQL Server dengan sistem referensi koordinat yang tidak diketahui ke GeoJSON dengan ogr2ogr

Konversi tabel spasial SQL Server dengan sistem referensi koordinat yang tidak diketahui ke GeoJSON dengan ogr2ogr


Saya memiliki tabel di SQL Server denganSTriddari0. Saya ingin mengonversi tabel ini ke GeoJSON menggunakanogr2ogr. Masalahnya adalah, meskipun mengonversi keEPSG:4326, koordinat yang dihasilkan tidak valid (diverifikasi menggunakan GeoJSONLint). File GeoJSONcrkunci mencantumkan sistem referensi koordinat seperti yang diinginkanCRS84, tetapi koordinat fitur terlalu besar.

Fitur sampel muncul seperti ini:

{ "jenis": "Fitur", "properti": { "TR": "00028" }, "geometri": { "jenis": "Titik", "koordinat": [ 447366.18450000137, -920054.45910000056 ] } }

Koordinat output seperti yang terlihat di atas identik dengan input:

pilih TR, Shape.STX, Shape.STY dari [tabel] di mana TR = '00028'

menghasilkan:

00028 447366.184500001 -920054.459100001

Saya memasukkan yang berikut iniogr2ogrmemerintah:

ogr2ogr -f "GeoJSON" "sqlexport.json" "MSSQL:server=[server];database=[db];trusted_connection=yes;" -sql "pilih TR, Bentuk dari [tabel]" -a_srs "EPSG:4326"

Sunting: Meskipun SQL Server mencantumkanSTridsebagai0, ArcGIS membacanya sebagaiGCS_North_American_1983:

Proyeksi Khusus: Two_Point_Equidistant False_Easting: 0,0 False_Northing: 0,0 Latitude_Of_1st_Point: 49.0 Latitude_Of_2nd_Point: 49.0 Longitude_Of_1st_Point: -110.0 Longitude_Of_2nd_Point: -77.0 Satuan Linear: Meter (1.0) Sistem Koordinat Geografis _1983_North_GCS_1983_N: Greenwich Datum: D_North_American_1983 Bulat: GRS_1980 Sumbu Semi Utama: 6378137.0 Sumbu Semi Kecil: 6356752.314140356 Perataan Terbalik: 298.257222101

Meskipun demikian, jika saya mengubahogr2ogrperintahkan sebagai berikut:

ogr2ogr -f "GeoJSON" "sqlexport.json" "MSSQL:server=[server];database=[db];trusted_connection=yes;" -sql "pilih TR, Bentuk dari [tabel]" -s_srs "EPSG:4140" -t_srs "EPSG:4326"

Koordinat masih tetap tidak berubah.


Untuk menentukan sistem koordinat yang benar untuk input data SQL Server, saya mengekspor data sebagai shapefile, dan menjalankan perintah berikut padaprjmengajukan:

gdalsrsinfo [tabel].prj

Ini menghasilkan string PROJ.4 berikut:

+proj=tpeqd +lat_1=49 +lon_1=-110 +lat_2=49 +lon_2=-77 +x_0=0 +y_0=0 +datum=NAD83 +unit=m +no_defs

Saya kemudian menempatkan string PROJ.4 di depan-s_srsbendera diogr2ogrperintah seperti ini:

ogr2ogr -f "GeoJSON" "sqlexport.json" "MSSQL:server=[server];database[db];trusted_connection=yes;" -sql "pilih TR, Bentuk dari [tabel]" -s_srs "+proj=tpeqd +lat_1=49 +lon_1=-110 +lat_2=49 +lon_2=-77 +x_0=0 +y_0=0 +datum=NAD83 + unit=m +no_defs" -t_srs "EPSG:4326"