Я хотів би зберегти деякі геометричні положення у моїй базі даних MySQL. Для цього я використовую тип даних POINT. Майже скрізь я читав, що функціяGeomFromText слід використовувати для вставки даних у таблицю.
Однак я з’ясував, що POINT(X,Y)також працює. Я не знайшов жодного опису, чому його GeomFromTextслід використовувати замість POINT.
Наприклад, у мене таке просте відношення:
CREATE TABLE Site (
SiteID BIGINT UNSIGNED,
Position POINT
);
І я можу вставити значення, використовуючи наступні два варіанти:
INSERT INTO Site (
1,
GeomFromText( 'POINT(48.19976 16.45572)' )
);
INSERT INTO Site (
2,
POINT(48.19976, 16.45572)
);
Коли я переглядаю таблицю ( SELECT * FROM Site), я бачу ту саму бінарну крапку для розташування, а коли я переглядаю координати ( SELECT *, AsText(Position) FROM Site), я також бачу однакові значення.
То навіщо використовувати GeomFromText? Чи існують (відомі) відмінності в роботі між цими двома варіантами? Як це вирішується в інших системах баз даних, крім MySQL?
INSERT INTO Site (Position) SELECT POINT(latitude, longitude) FROM tmpпростіше, ніж...SELECT GeomFromText(CONCAT('POINT(',latitude,' ',longitude,')' )) ...