Хранение геоданных - PullRequest
       16

Хранение геоданных

2 голосов
/ 11 августа 2010

Привет, я использую MS SQL 2005 для хранения некоторых последних данных.В настоящее время он хранится в столбце nvarchar в следующей форме - "35.6949965,139.7555035" Мои вопросы.Это лучший способ для хранения таких данных?Если я сохраню значение latlng таким образом, оно придет и укусит меня позже, или это будет означать, что мне придется выполнять какую-либо обработку вне базы данных?

Ответы [ 2 ]

3 голосов
/ 11 августа 2010

В идеале вы должны обновить MSSQL 2008 и использовать новый тип данных GEOGRAPHY .Это позволило бы вам использовать все виды изящных функций, таких как пространственные индексы, которые эффективно выполняют запросы типа «дают мне все точки в радиусе 100 миль от 35,6949965,139.7555035».

2 голосов
/ 11 августа 2010

Это почти наверняка не лучший способ его хранения.Если вы используете пару столбцов с плавающей точкой - широту и долготу - тогда вы можете выполнять некоторые функции в самой базе данных.В качестве примера, вот как рассчитать расстояние между двумя точками:

http://www.zipcodeworld.com/samples/distance.mssql.html

Или, в качестве тривиального примера,

SELECT * FROM table WHERE latitide<40;

будет находиться везде к северу отНью-Йорк.

...