OpenLayers получают Lat, Lon из вершин многоугольника - PullRequest
4 голосов
/ 08 декабря 2011

Я пытаюсь получить границу, используя квадратный многоугольник в открытых слоях. Мне нужно получить значения «Север», «Юг», «Запад» и «Восток» из коробки. Прямо сейчас я использую:

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

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

POINT(-13393350.718762 4024321.5982824)

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

1 Ответ

6 голосов
/ 08 декабря 2011

Одна из ваших опций - использовать 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
...