Конвертация координатной системы.

0 голосов
спросил 30 Окт, 06 от Zhenya_Zhenya (220 баллов) в категории Программные продукты Esri
 
.......Задача задать точке, имеющей лонг-лат координаты, полученой с навигатора, координаты метной проекции.
 По примерам написал такую функцию. На выходе точку получается пустой. С таким сообщением в дебагере
{"The operation was attempted on an empty geometry."} 
Опыт в АркОбжект нулевой, до сих пор работал с МапОбжект. Если кто-то сможет объяснить ошибку, буду очень благодарен. Спасибо.
 
Public Function Geo2ITM(ByVal pt As esriGeometry.Point) As esriGeometry.Point

        Dim pGeo As IGeometry
        Dim srFactory As ISpatialReferenceFactory
        Dim srITM As ISpatialReference
        Dim srGeo As ISpatialReference
        srFactory = New SpatialReferenceEnvironment
        srITM = srFactory.CreateProjectedCoordinateSystem(esriSRProjCSType.esriSRProjCS_IsraelIsraelTMGrid)
        srGeo = srFactory.CreateGeographicCoordinateSystem(esriSRGeoCSType.esriSRGeoCS_WGS1984)
        pGeo = pt
        pGeo.SpatialReference = srGeo
        pGeo.Project(srITM)
        pt = pGeo       
        Geo2ITM = pt

    End Function

1 Ответ

0 голосов
ответил 08 Ноя, 06 от Darwin (800 баллов)
попробуйте так
Public Function Geo2ITM(ByVal pt As esriGeometry.Point) As esriGeometry.Point

        Dim pGeo As IGeometry
        Dim srFactory As ISpatialReferenceFactory
        Dim srITM As ISpatialReference
        Dim srGeo As ISpatialReference
        Set srFactory = New SpatialReferenceEnvironment
        Set srITM = srFactory.CreateProjectedCoordinateSystem(esriSRProjCS_IsraelIsraelTMGrid)
        Set srGeo = srFactory.CreateGeographicCoordinateSystem(esriSRGeoCS_WGS1984)
        Set pGeo = pt
        Set pGeo.SpatialReference = srGeo
        pGeo.Project srITM
        Set pt = pGeo
        Set Geo2ITM = pt

    End Function

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...