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

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

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

Сообщение BodyZ »

Доброго времени суток.
Подскажите как программно можно преобразовать координаты точки из Метров (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: Преобразование координат

Сообщение Дмитрий Барышников »

Координаты у вас не в метрах, а в тех единицах, которые заданы в pActiveView.ScreenDisplay.DisplayTransformation.SpatialReference
http://resources.esri.com/help/9.3/arcg ... mation.htm
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

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

Сообщение BodyZ »

Спасибо за подсказку. Но как мне от заданных получить Углы (Decimal Degrees).
Заранее спасибо
BodyZ
Участник
Сообщения: 70
Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1

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

Сообщение BodyZ »

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

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

Сообщение Дмитрий Барышников »

Если у вас 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 »

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

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

  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 »

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

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

Сообщение Дмитрий Барышников »

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

ESRI.ArcGIS.Geometry.IGeographicCoordinateSystem m_GeographicCoordinateSystem = m_ProjectedCoordinateSystem .GeographicCoordinateSystem;
Ответить

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

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

Сейчас этот форум просматривают: Ahrefs [Bot] и 4 гостя