Преобразование координат

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

Преобразование координат

Сообщение BodyZ » 12 июл 2012, 16:07

Доброго времени суток.
Подскажите как программно можно преобразовать координаты точки из Метров (Meters) в Углы (Decimal Degrees).
Координаты получаю при нажатии кнопки мыши.

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

 IMxDocument m_doc = m_application.Document as IMxDocument;
 IActiveView pActiveView = m_doc.FocusMap as IActiveView;
 IPoint point1 = pActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
После такой операции point1 получаем в Метрах (Прямоугольных координатах).

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Преобразование координат

Сообщение Дмитрий Барышников » 12 июл 2012, 16:34

Координаты у вас не в метрах, а в тех единицах, которые заданы в pActiveView.ScreenDisplay.DisplayTransformation.SpatialReference
http://resources.esri.com/help/9.3/arcg ... mation.htm

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

Re: Преобразование координат

Сообщение BodyZ » 12 июл 2012, 16:37

Спасибо за подсказку. Но как мне от заданных получить Углы (Decimal Degrees).
Заранее спасибо

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

Re: Преобразование координат

Сообщение BodyZ » 12 июл 2012, 16:44

Тут скорее всего идет речь о пересчете величины представления координаты в Decimal Degrees

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Преобразование координат

Сообщение Дмитрий Барышников » 12 июл 2012, 23:15

Если у вас SpatialReference проекционная и единицы измерения иметры, то вы можете получить из вашей проекционной СК географическую и выполнить перепроецирование.
http://edndoc.esri.com/arcobjects/9.1/C ... System.htm (свойство GeographicCoordinateSystem)
http://edndoc.esri.com/arcobjects/9.0/c ... ometry.htm (метод Project)

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

Re: Преобразование координат

Сообщение BodyZ » 13 июл 2012, 15:07

Наел по етой ссылке
такой код

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

  public static ESRI.ArcGIS.Geometry.IPoint ProjectPoint(IMap theMap,IPoint thePoint, bool toGeo)
  {
       int prjType = (int)ESRI.ArcGIS.Geometry.esriSRProjCSType.esriSRProjCS_NAD1983USA_Lambert;
       int geoType = (int)ESRI.ArcGIS.Geometry.esriSRGeoCSType.esriSRGeoCS_WGS1984;
            
       ESRI.ArcGIS.Geometry.ISpatialReferenceFactory pSRF = new ESRI.ArcGIS.Geometry.SpatialReferenceEnvironmentClass();
       ESRI.ArcGIS.Geometry.IProjectedCoordinateSystem m_ProjectedCoordinateSystem;
       ESRI.ArcGIS.Geometry.IGeographicCoordinateSystem m_GeographicCoordinateSystem;
       m_ProjectedCoordinateSystem = pSRF.CreateProjectedCoordinateSystem(prjType);
       m_GeographicCoordinateSystem = pSRF.CreateGeographicCoordinateSystem(geoType);

       ESRI.ArcGIS.Geometry.IPoint pPoint = new ESRI.ArcGIS.Geometry.PointClass();
       pPoint.X = thePoint.X;
       pPoint.Y = thePoint.Y;
       if (toGeo)
        {
            ESRI.ArcGIS.Geometry.ISpatialReference pGCS = new    ESRI.ArcGIS.Geometry.GeographicCoordinateSystemClass();
            pPoint.SpatialReference = pGCS;
            pPoint.SpatialReference = m_ProjectedCoordinateSystem;
            pPoint.Project(m_GeographicCoordinateSystem);
         }
         else
         {
            ESRI.ArcGIS.Geometry.ISpatialReference pPCS = new ESRI.ArcGIS.Geometry.ProjectedCoordinateSystemClass();
            pPoint.SpatialReference = pPCS;
            pPoint.SpatialReference = m_GeographicCoordinateSystem;
            pPoint.Project(m_ProjectedCoordinateSystem);
          }
          return pPoint;
        }
?? Но у меня система координат Pulkovo_1942_GK_Zone_5, и не могу переделать найденный код,
что бы он правильно считал для Pulkovo_1942_GK_Zone_5ю

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

Re: Преобразование координат

Сообщение BodyZ » 13 июл 2012, 15:45

Спасибо Вам.
Нашел в в Ваших старых ответах
По моему все нормально. Может я и ошибаюсь

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Преобразование координат

Сообщение Дмитрий Барышников » 13 июл 2012, 17:09

Можно было как-то так.
ESRI.ArcGIS.Geometry.IProjectedCoordinateSystem m_ProjectedCoordinateSystem = pActiveView.ScreenDisplay.DisplayTransformation.SpatialReference;

ESRI.ArcGIS.Geometry.IGeographicCoordinateSystem m_GeographicCoordinateSystem = m_ProjectedCoordinateSystem .GeographicCoordinateSystem;

Ответить

Вернуться в «ArcGIS»

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

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