Какой SRID я должен использовать для своего приложения и как? - PullRequest
8 голосов
/ 17 января 2011

Я использую PostgreSQL с PostGIS.Все мои данные уже имеют десятичную лат / долготу (т. Е. -87.34554 33.12321), но для использования PostGIS мне нужно преобразовать их в определенный тип SRID.Большинство моих запросов ищут данные внутри определенного радиуса.

Какой SRID мне следует использовать?Я уже создал геометрический столбец с SRID 4269. В этом примере: текст ссылки автор конвертирует SRID 4269 в SRID 32661. Я очень озадачен тем, как и когда использовать эти SRID.Любой Lite по этому вопросу будет по-настоящему оценен.

Ответы [ 2 ]

7 голосов
/ 21 января 2011

Пока вы никогда не намереваетесь перепроектировать / преобразовать данные в другую систему координат, технически не имеет значения, какой srid вы используете. Однако, если вы не хотите выбрасывать эти важные метаданные и хотите преобразовать их, вы захотите убедиться, что назначенный вами srid соответствует данным, поэтому postgis знает, что делать, когда придет время.

Так зачем вам перепроектировать из epsg: 4269? Ответ в том, что определенные типы запросов (например, расстояние) не имеют смысла в этом «непроектированном» мире. Ваши единицы в десятичных градусах, а прямое измерение x десятичных градусов - это другое реальное расстояние, в зависимости от того, где вы находитесь на планете.

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

Теперь, к счастью, у PostGIS есть несколько способов сделать все это проще. Для приблизительных расстояний вы можете просто использовать функцию st_distance_sphere, которая, как вы можете догадаться, предполагает, что Земля является сферой. Или более точный st_distance_spheroid. Используя их, вам не нужно перепроектировать, и вы, вероятно, подойдет для ваших дистанционных запросов, за исключением крайних случаев. Более новые версии PostGIS также позволяют использовать столбцы географии

tl; dr - используйте st_distance_spheroid для ваших дистанционных запросов, сохраняйте данные в столбцах географии или преобразуйте их в локальную проекцию (при хранении или на лету, в зависимости от ваших потребностей).

1 голос
/ 17 января 2011

Посмотрите на этот вопрос: Откуда вы знаете, какой SRID использовать для файла shp?

SRID - это просто способ храненияWKT внутри базы данных (вы, возможно, заметили, что, несмотря на то, что вы сохраняете широту / долготу, предпочтительным является хранение длинной строки с цифрами и заглавными буквами).отличаться для страны / штата / ... хотя есть некоторые очень распространенные, особенно те, что вы упомянули.Если вам нужна конкретная информация о том, какая область использует какой SRID, существует база данных для обработки этого .

Внутри вашей базы данных у вас есть таблица spatial_ref_sys, которая содержит информацию о том, какой SRID PostGISзнает о.

...