2015-08-26 2 views
1

Возникает ошибка, когда я пытаюсь вставить данные в столбец геометрии postgis.Тип координаты в postgis

ОШИБКА: координата значения вне диапазона [-180 -90, 180 90] для типа ГЕОГРАФИЯ SQL состояния: 22023

Моя вставка запроса.

INSERT INTO meter1(meter_id, meter_no,location,type) 
VALUES ('M1', 200,ST_GeographyFromText('SRID=3857; 
     POINT(256300.11 9856321.09)'),'automatic'); 
+0

Ну что ошибка кажется само поясняющими как 256300,11 и 9856321,09 случается гораздо гораздо больше, чем 180 – e4c5

+0

e4c5, но как может вставьте эту координату или что я могу изменить – user3736334

+0

, откуда берутся эти данные? – e4c5

ответ

1

Прежде всего это выглядит как одна из ситуаций, когда вам, вероятно, не нужно использовать тип географии.

If your data is geographically compact (contained within a state, county or city), use the geometry type with a Cartesian projection that makes sense with your data.

http://workshops.boundlessgeo.com/postgis-intro/geography.html#why-not-use-geography

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

INSERT INTO meter1(meter_id, meter_no,location,type)  
VALUES ('M1', 200, 
    ST_Transform(ST_SetSrid(ST_GeomFromText('POINT(256300.11 9856321.09)'), 3587), 4326), 
    'automatic'); 

Функция использовать здесь ST_Transform

Смежные вопросы