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 получаем в Метрах (Прямоугольных координатах).
BodyZ
Участник
Сообщения: 70 Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1
Сообщение
BodyZ » 12 июл 2012, 16:37
Спасибо за подсказку. Но как мне от заданных получить Углы (Decimal Degrees).
Заранее спасибо
BodyZ
Участник
Сообщения: 70 Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1
Сообщение
BodyZ » 12 июл 2012, 16:44
Тут скорее всего идет речь о пересчете величины представления координаты в Decimal Degrees
BodyZ
Участник
Сообщения: 70 Зарегистрирован: 04 сен 2009, 16:47
Репутация: 1
Сообщение
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ю
Дмитрий Барышников
Гуру
Сообщения: 2572 Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва
Сообщение
Дмитрий Барышников » 13 июл 2012, 17:09
Можно было как-то так.
ESRI.ArcGIS.Geometry.IProjectedCoordinateSystem m_ProjectedCoordinateSystem = pActiveView.ScreenDisplay.DisplayTransformation.SpatialReference;
ESRI.ArcGIS.Geometry.IGeographicCoordinateSystem m_GeographicCoordinateSystem = m_ProjectedCoordinateSystem .GeographicCoordinateSystem;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей