Mysql

GeoJSON MultiLineString 使用 SRID/CRS 27700 導入 MySQL,“超出範圍”

  • September 23, 2020

版本 8.0.20 我正在導入 OSM 道路網路的單個連結,目的是在 MySQL 中創建緩衝區。

就是這個:

select st_srid(st_geomfromgeojson('{ "type": "Feature", "properties": { "osm_id": "200020986" }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ 440417.0, 192697.0 ], [ 440386.0, 192596.0 ], [ 440361.0, 192416.0 ], [ 440353.0, 192277.0 ], [ 440331.0, 192121.0 ], [ 440327.0, 192040.0 ], [ 440330.0, 191981.0 ], [ 440341.0, 191949.0 ], [ 440433.0, 191817.0 ], [ 440494.0, 191703.0 ], [ 440506.0, 191688.0 ] ] ] } }'),27700)
into @foo
  • 東向和北向都在 OSGB 內
  • srid 被定義為 27700

但我回來了

錯誤程式碼:3616。經度 440417.000000 超出函式 st_geomfromgeojson 的範圍。它必須在 (-180.000000, 180.000000] 範圍內。

看起來它忽略了 27700 並試圖編碼成 4326/WGS84 並且顯然失敗了。請問有什麼想法嗎?

我發現解決此問題的方法是使用 ogr2ogr 導入東線和北線(在 geojson 文件中)。範常式式碼如下:

ogr2ogr -f MySQL MySQL:test,user=root import_file_location \
-nln FILENAME -update -overwrite -lco GEOMETRY_NAME=MULTIPOLYGON

這將作為英國國家網格座標導入,然後可用於在 MySQL 中創建緩衝區。

引用自:https://dba.stackexchange.com/questions/275868