Что лучший способ состоит в том, чтобы сохранить координаты (долгота/широта от Google Maps) в SQL Server?

Препроцессор объединит строковые литералы в единый строковый литерал, т. Е. "abc" "def" будет объединен в "abcdef" перед любыми присвоениями или другим использованием.

101
задан j0k 11 September 2013 в 11:46
поделиться

6 ответов

Смотрите на новые Пространственные типы данных, которые были представлены в SQL Server 2008. Они разработаны для этого вида задачи и делают индексацию и запросы намного легче и более эффективными.

[еще 115] информация:

53
ответ дан trejder 24 November 2019 в 04:40
поделиться

SQL Server имеет поддержку пространственной сопутствующей информации. Вы видите больше в http://www.microsoft.com/sqlserver/2008/en/us/spatial-data.aspx .

Alternativly можно хранить информацию как два основных поля, обычно плавание является стандартным типом данных, о котором сообщают большинство устройств, и достаточно точно для в дюйме или два - более, чем достаточный для Google Maps.

11
ответ дан Rosstified 24 November 2019 в 04:40
поделиться

Если бы Вы просто собираетесь заменить им в URL, я предполагаю, что одно поле сделало бы - таким образом, можно сформировать URL как

http://maps.google.co.uk/maps?q=12.345678,12.345678&z=6

, но поскольку это - две части данных, я сохранил бы их в отдельных полях

-4
ответ дан Kristen 24 November 2019 в 04:40
поделиться

Сохраните и как плавание и используйте слова уникального ключа на them.i.em

create table coordinates(
coord_uid counter primary key,
latitude float,
longitude float,
constraint la_long unique(latitude, longitude)
);
-10
ответ дан Graviton 24 November 2019 в 04:40
поделиться

Я не знаю ответа для SQL Server, но ...

В MySQL сохраните его как FLOAT (10, 6)

Это официальная рекомендация из документации для разработчиков Google .

CREATE TABLE `coords` (
  `lat` FLOAT( 10, 6 ) NOT NULL ,
  `lng` FLOAT( 10, 6 ) NOT NULL ,
) ENGINE = MYISAM ;
29
ответ дан 24 November 2019 в 04:40
поделиться

Что вы хотите сделать, так это сохранить широту и долготу как новый пространственный тип SQL2008 -> GEOGRAPHY.

Вот скриншот таблицы, которая у меня есть.

alt текст http://img20.imageshack.us/img20/6839/zipcodetable.png

В этой таблице у нас есть два поля, в которых хранятся географические данные.

  • Граница: это многоугольник, который является границей почтового индекса
  • CentrePoint: это точка широты / долготы, которая представляет визуальную среднюю точку этого многоугольника.

Основная причина, по которой вы хотите сохранить ее в базе данных как тип GEOGRAPHY, заключается в том, чтобы вы могли затем использовать все методы SPATIAL выключить -> например. Точка в поли, расстояние между двумя точками и т. Д.

Кстати, мы также используем Google Maps API для получения данных о широте и долготе и сохранения их в нашей базе данных Sql 2008 - так что этот метод действительно работает.

15
ответ дан 24 November 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: