Как проверить действительность LonLat в конкретной проекции в OpenLayers

Я хочу использовать метод isValidLonLat для проверки правильности координат.

В основном я вставляю координаты в проекцию EPSG: 4326, но метод isValidLonLat проверяет, используя границы мира, которые находятся в EPSG: 900913.

Например:

map.isValidLonLat(new OpenLayers.LonLat(-8, 400)) // returns true

Может быть, следует считать это ложным, потому что широта больше 180 градусов.

Я знаю, почему он возвращает истину. Как я уже сказал, я заметил, что проверка выполняется с использованием границ в EPSG: 900913.

Возникает вопрос: есть ли способ указать методу, что проверка должна выполняться с использованием данной проекции (здесь EPSG: 4326)?

Спасибо


person joaorodr84    schedule 04.03.2015    source источник


Ответы (1)


Вы можете преобразовать свои координаты из EPSG: 4326 в EPSG: 900913, а затем выполнить проверку. Для этого вы можете использовать библиотеку proj4js.

См. Пример ниже:

var SourceProjection = new Proj4js.Proj('EPSG:4326');
var DestinationProjection = new Proj4js.Proj('EPSG:900913');

var Point = new Proj4js.Point(longitude, latitude);          
Proj4js.transform(SourceProjection, DestinationProjection, Point); 
map.isValidLonLat(new OpenLayers.LonLat(Point.x, Point.y));
person Genti Qirjazi    schedule 04.03.2015
comment
спасибо за ваш совет ... Я тоже об этом подумал ... Мне было интересно, есть ли в OpenLayers какая-то функция, которая указывает проекцию для использования в tst, например: _1 _... вы знаете, возможно ли это сделать что-то подобное? - person joaorodr84; 05.03.2015