Страница 1 из 1
Географические координаты в прямоугольные
Добавлено: 03 авг 2010, 21:52
BodyZ
Доброго времени суток. Подскажите пожалуйста как имея географические координаты получить X и Y. У меня есть карта мира. Заранее спасибо
Re: Географические координаты в прямоугольные
Добавлено: 04 авг 2010, 02:26
Boris
а в какой системе координат?
Re: Географические координаты в прямоугольные
Добавлено: 05 авг 2010, 15:32
BodyZ
У меня карта имеет Geographic Coordinate System: GCS_WGS_1984.
Мне необходимо пересчитывать и географических координат в X Y,
чтобы программа корректно ставила точки
Re: Географические координаты в прямоугольные
Добавлено: 05 авг 2010, 15:36
nadiopt
нужно определиться, в какой СК вы хотите получить прямоугольные координаты. После этого берем любую ГИС, перепроецируем карту в нужную нам СК (семейство систем координат с метрами, а не с градусами называется спроецированными СК) и снимаем координаты
Re: Географические координаты в прямоугольные
Добавлено: 05 авг 2010, 15:58
bim2010
Например перевод из Longitude / Latitude (WGS 84) (EPSG: 4326) в
Mercator WGS84 Meters
Код: Выделить всё
forwardMercator: function(lon, lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new OpenLayers.LonLat(x, y);
},
Где Math.PI - число PI=3.141592653589793238462
Re: Географические координаты в прямоугольные
Добавлено: 05 авг 2010, 20:31
BodyZ
Позвольте уточнить. Начал использовать этот код
Код: Выделить всё
forwardMercator: function(lon, lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new OpenLayers.LonLat(x, y);
},
Точка ставиться в другой галактике. Думал результат x и y в метрах нужно перевести в км (/1000). Точка ставиться поближе к Земле но еще не на ней. Помогите сняться с ручника. Спасибо
Re: Географические координаты в прямоугольные
Добавлено: 05 авг 2010, 22:09
bim2010
Пример моего текста:
SET DECIMALS TO 18
pipi=3.141592653589793238462
M.Long = M.Long * 20037508.34/180
M.Lat = log(tan((90 + M.Lat) * pipi / 360)) / (pipi / 180)
M.Lat = M.Lat * 20037508.34 / 180
Пример конвертации (в метры):
Lat=54,766910 __________ 7316758,84 (метры)
Long= 32,019500 __________ 3564394,43 (метры)
Re: Географические координаты в прямоугольные
Добавлено: 06 авг 2010, 15:58
BodyZ
Я плохо объяснил проблему. Мне нужен пересчет и географических координат в X Y для IPoint, при программном добавлении точки
Re: Географические координаты в прямоугольные
Добавлено: 06 авг 2010, 17:07
bim2010
Мне нужен пересчет и географических координат в X Y для IPoint, при программном добавлении точки
Осталось выяснить что Вы имеете ввиду когда говорите о IPoint?
1 вариант: получение координат точечных объектов в Arcgis - Dim pPoint As IPoint (Но вопрос не в разделе по Arcgis)
2 вариант:
iPoint
3 вариант: Процесс IPoint.exe принадлежит программе
Microsoft IntelliPoint
Re: Географические координаты в прямоугольные
Добавлено: 09 авг 2010, 19:33
BodyZ
Все решилось. Координаты, видимо, соответствуют выбранной системе координат. Извините за беспокойство

Re: Географические координаты в прямоугольные
Добавлено: 25 ноя 2010, 16:41
o-sport
[quote="bim2010"]Например перевод из Longitude / Latitude (WGS 84) (EPSG: 4326) в
Mercator WGS84 Meters
Код: Выделить всё
forwardMercator: function(lon, lat) {
var x = lon * 20037508.34 / 180;
var y = Math.log(Math.tan((90 + lat) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new OpenLayers.LonLat(x, y);
},
Подскажите, перевожу по формуле координаты из гугла карт в X Y, прибавляю к примеру 500 метров. Конвертирую обратно получаю точку. смотрю по карте, линейкой получается 280метров.
что не так? подскажите может что то не так делаю?