Я довольно смущен. У меня есть точка:
x= -12669114.702301
y= 5561132.6760608
Что я получил от рисования квадрата на векторном слое с контроллером DrawFeature.
Цифры кажутся... erm... ужасными большими, но они, похоже, работают, потому что, если я потом рисую квадрат со всеми одинаковыми точками, он находится в том же положении, поэтому я полагаю, что они должны быть правы.
Проблема заключается в том, что я пытаюсь преобразовать эту точку в широту и долготу.
Я использую:
map.getLonLatFromPixel(pointToPixel(points[0]));
Где точки [0] - точка геометрии, а функция pointToPixel принимает любую точку и превращает ее в пиксель (поскольку для getLonLatFromPixel нужен пиксель). Он делает это, просто беря точку x и делая ее пикселями x и т.д.
Широта и долгота, которые я получаю, имеют порядок:
lat: -54402718463.864
lng: -18771380.353223
Это очень явно неправильно. Я очень растерялся. Я пытаюсь проецировать этот объект, используя:
.transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
Но я действительно не понимаю, и я уверен, что я сделал это неправильно, так или иначе.
Мой код здесь: http://pastie.org/909644
Я немного растерялся. Координаты кажутся непротиворечивыми, потому что я могу повторно использовать их, чтобы получить тот же результат... но они кажутся намного больше, чем любой из примеров, которые я вижу на веб-сайте openLayers...