OpenLayers получает широту и долготу из вершин многоугольника

Я пытаюсь получить граничную рамку, используя квадратный многоугольник в openlayers. Мне нужно получить значения севера, юга, запада и востока из коробки. Прямо сейчас я использую:

var topleft = vectors.features[0].geometry.getVertices()[0];

чтобы получить верхнюю левую вершину. Однако он возвращает такое значение:

POINT(-13393350.718762 4024321.5982824)

Как я могу получить значения широты и долготы из этой возвращенной точки?


person gberg927    schedule 08.12.2011    source источник
comment
Какова проекция вашей карты OpenLayers?   -  person AlexC    schedule 08.12.2011
comment
@AlexC Он использует проекцию Меркатора. Мне не нужна помощь с преобразованием. Я просто застрял в том, как получить значения широты/долготы из возвращаемого значения POINT (-13393350.718762 4024321.5982824)   -  person gberg927    schedule 08.12.2011


Ответы (1)


Один из вариантов, который у вас есть, — использовать getVertices()[i] для создания точки.

var myPoint = new OpenLayers.Geometry.Point(vectors.features[0].geometry.getVertices()[0].x,
                              vectors.features[0].geometry.getVertices()[0].y )

затем преобразуйте эту точку, чтобы получить Lat и Long с чем-то вроде

var myLatLonPoint = myPoint.transform( map.getProjectionObject(),
                   new OpenLayers.Projection("EPSG:4326"));

Тогда вы должны быть в состоянии захватить широчайшие и длинные из этих точек.

Другим вариантом, возможно, более предпочтительным, было бы преобразование границы, а затем вытягивание отдельных вершин.

var myLatLonSquare = vectors.features[0].geometry.transform( map.getProjectionObject(),
                   new OpenLayers.Projection("EPSG:4326"));

затем вытяните длинную длину вершин с помощью:

myLatLonSquare.getVertices()[0].x  myLatLonSquare.getVertices()[0].y
person AlexC    schedule 08.12.2011