Я могу успешно сделать:
point.transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
До точки в формате Google (в метрах), но когда я хочу сделать обратное:
point.transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:900913"));
до точки в 4326 (обычный формат широта / долгота), у меня возникли некоторые проблемы.
Кажется, что любое отрицательное значение становится NaN (не число), когда я делаю преобразование. Есть ли что-то в обратном преобразовании, которое я не понимаю?
Редактировать: еще хуже, когда у меня нет отрицательных значений, координаты кажутся отключенными. Я получаю координаты, рисуя квадрат на экране, затем сохраняю эти координаты в базе данных и загружаю их позже. Я могу нарисовать квадрат около вершины Африки (положительные координаты), а затем, когда он загружается, он находится около вершины Африки в Атлантическом океане. Я определенно делаю что-то не так ...
Редактировать: Вот мой код: http://pastie.org/911524
В частности: так я инициализирую свою карту:
var navControl = new OpenLayers.Control.Navigation();
map = new OpenLayers.Map('map', {
// restrictedExtent: bounds.clone(),
});
//actually draws the map
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik", {
displayOutsideMaxExtent: false,
wrapDateLine: true
//numZoomLevels: 10
});