Географические координаты в прямоугольные

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Географические координаты в прямоугольные

Сообщение BodyZ » 03 авг 2010, 21:52

Доброго времени суток. Подскажите пожалуйста как имея географические координаты получить X и Y. У меня есть карта мира. Заранее спасибо

Boris
Гуру
Сообщения: 4231
Зарегистрирован: 10 апр 2006, 22:34
Репутация: -344969098
Откуда: Париж

Re: Географические координаты в прямоугольные

Сообщение Boris » 04 авг 2010, 02:26

а в какой системе координат?

BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Географические координаты в прямоугольные

Сообщение BodyZ » 05 авг 2010, 15:32

У меня карта имеет Geographic Coordinate System: GCS_WGS_1984.
Мне необходимо пересчитывать и географических координат в X Y,
чтобы программа корректно ставила точки

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

Re: Географические координаты в прямоугольные

Сообщение nadiopt » 05 авг 2010, 15:36

нужно определиться, в какой СК вы хотите получить прямоугольные координаты. После этого берем любую ГИС, перепроецируем карту в нужную нам СК (семейство систем координат с метрами, а не с градусами называется спроецированными СК) и снимаем координаты
ин гроссен фамилен нихт клювен клац клац

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: Географические координаты в прямоугольные

Сообщение bim2010 » 05 авг 2010, 15:58

Например перевод из 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

BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Географические координаты в прямоугольные

Сообщение BodyZ » 05 авг 2010, 20:31

Позвольте уточнить. Начал использовать этот код

Код: Выделить всё

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). Точка ставиться поближе к Земле но еще не на ней. Помогите сняться с ручника. Спасибо

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: Географические координаты в прямоугольные

Сообщение bim2010 » 05 авг 2010, 22:09

Пример моего текста:

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 (метры)

BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Географические координаты в прямоугольные

Сообщение BodyZ » 06 авг 2010, 15:58

Я плохо объяснил проблему. Мне нужен пересчет и географических координат в X Y для IPoint, при программном добавлении точки

bim2010
Гуру
Сообщения: 977
Зарегистрирован: 27 янв 2009, 22:57
Репутация: 258

Re: Географические координаты в прямоугольные

Сообщение bim2010 » 06 авг 2010, 17:07

Мне нужен пересчет и географических координат в X Y для IPoint, при программном добавлении точки
Осталось выяснить что Вы имеете ввиду когда говорите о IPoint?

1 вариант: получение координат точечных объектов в Arcgis - Dim pPoint As IPoint (Но вопрос не в разделе по Arcgis)
2 вариант: iPoint
3 вариант: Процесс IPoint.exe принадлежит программе Microsoft IntelliPoint

BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Re: Географические координаты в прямоугольные

Сообщение BodyZ » 09 авг 2010, 19:33

Все решилось. Координаты, видимо, соответствуют выбранной системе координат. Извините за беспокойство :?

o-sport
Новоприбывший
Сообщения: 1
Зарегистрирован: 25 ноя 2010, 16:36
Репутация: 0

Re: Географические координаты в прямоугольные

Сообщение o-sport » 25 ноя 2010, 16:41

[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метров.

что не так? подскажите может что то не так делаю?

Ответить

Вернуться в «Общий - ПО»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя