MySQL 8 ST_GeomFromGeo JSON выбрасывает долготу за пределы диапазона - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть таблица с полигонами, которая хранится как geo json.

CREATE TABLE `location_boundaries` (
   `id` INT UNSIGNED NOT NULL,
   `name` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci',
   `geo_json` JSON NULL DEFAULT NULL,
   `geom` GEOMETRY NULL DEFAULT NULL,
   PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB

У меня есть geo json мультиполигон для Азии, как показано в таблице:

{"type": "MultiPolygon", "coordinates": [[[[-168.25, 77.7], [-180, 77.7], [-180, 58.1], [-168.25, 58.1], [-168.25, 77.7]]], [[[39.6908, 84.52666], [180, 84.38487], [180, 26.27883], [142.084541, 22.062707], [130.147, 3.608598], [141.1373, -1.666358], [141.0438, -9.784795], [130.2645, -10.0399], [118.2545, -13.01165], [102.7975, -8.388008], [89.50451, -11.1417], [61.62511, -9.103512], [51.62645, 12.54865], [44.20775, 11.6786], [39.78016, 16.56855], [31.60401, 31.58641], [33.27769, 34.00057], [34.7674, 34.85347], [35.72423, 36.32686], [36.5597, 37.66439], [44.1053, 37.98438], [43.01638, 41.27191], [41.28304, 41.41274], [36.26378, 44.40772], [36.61315, 45.58723], [37.48493, 46.80924], [38.27497, 47.61317], [39.56164, 48.43141], [39.77264, 50.58891], [39.6908, 84.52666]]]]}

Когда Я запускаю следующее

 UPDATE location_boundaries SET geom = ST_GeomFromGeoJSON(geo_json) where id = 6255147

Я получаю следующую ошибку:

Longitude -180.000000 is out of range in function st_geomfromgeojson. It must be within (-180.000000, 180.000000].")

Что происходит. Все это работало нормально в mysql 5.7, а в mysql 8 все испортилось?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...