Как создать точку ArcObjects с широтой и долготой

Мне нужно добавить точку в существующий класс объектов с помощью .NET API ArcGIS Server 10 на C# (Visual Studio 2008). Я использую образец из Ресурсного центра ESRI (ArcGIS_SimpleEdit_CSharp). Ниже показана часть кода, которая создает новую точку с использованием координат X/Y.

ESRI.ArcGIS.Geometry.IPoint aoPoint = serverContext.CreateObject("esriGeometry.Point") as 
            ESRI.ArcGIS.Geometry.IPoint;
aoPoint.PutCoords(actionRecord.Location.X, actionRecord.Location.Y);

Но мне нужно использовать широту и долготу (с десятичной точностью) вместо координат X/Y. Как я могу это сделать?

Спасибо


person Fred    schedule 01.06.2012    source источник


Ответы (1)


Если ваши данные представлены в широте/долготе, а ваш класс пространственных объектов находится в какой-либо проецируемой системе координат, вам необходимо спроецировать ваши данные широты/долготы, прежде чем добавлять точки в ваш класс пространственных объектов. Для этого вы можете использовать метод IGeometry.Project, дополнительную информацию о котором вы можете найти здесь.

Имейте в виду, что в зависимости от датума ваших данных широты/долготы, а также вашего класса пространственных объектов вам может потребоваться выполнить преобразование датума как часть процесса проецирования. В этом случае вам понадобится метод IGeometry.ProjectEx (дополнительная информация здесь и здесь — обратите внимание, что последняя ссылка включает в себя ссылки на некоторые примеры внизу, которые могут быть полезны).

Я знаю, что это не полный ответ, но, надеюсь, я предоставил пару указателей, которые помогут вам двигаться в правильном направлении. Если вы можете предоставить немного больше подробностей о том, что именно вы пытаетесь сделать, то, возможно, я смогу предоставить более конкретную помощь.

И последнее замечание — похоже, вы используете здесь ArcGIS Server Web ADF — знаете ли вы, что локальные подключения Web ADF исчезают в версии 10.1 Server? В зависимости от характера вашего проекта вы можете рассмотреть альтернативный подход, например, использование SOAP или REST API, сервисов геообработки и/или написание расширений серверных объектов (SOE) для любой работы, которая действительно требует пользовательских ArcObjects.

person Dave Marley    schedule 04.06.2012