版本 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 文件中)。示例代码如下:
这将作为英国国家网格坐标导入,然后可用于在 MySQL 中创建缓冲区。