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