Проблема при переходе с версии 8.3

0 голосов
спросил 19 Сен, 05 от Гость (210,080 баллов) в категории Программные продукты Esri

Программа, которая работала в версии 8.3, в 9.0 - выдает ошибку.

Программа должна выполнять следующее - при нажатии соответствующей кнопки на панели инструментов
пользователь при помощи мыши может выделить область карты прямоугольной формы.
Затем программа должна получить координаты области, перевести в географическую систему координат и
подставить их в запрос для выборки из базы данных объектов, попадающих в заданную область.
Ошибка возникает при переводе координат прямоугольника из системы координат карты в географическую.
Код построен на использовании примеров из DeveloperKit версии 8.3.
Подскажите, плз, что нужно изменить в программе, чтобы она заработала.

Текст ошибки:
 An error has occured within the Select Tool.
 Error Details: The operation was attempted on an empty geometry.

Фрагменты текста программы:

Private m_pFeedbackEnv As esriDisplay.INewEnvelopeFeedback

Private Sub ITool_OnMouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)

  ...

  ' Create a rubber banding box, if it hasn't been created already
  If (m_pFeedbackEnv Is Nothing) Then
    Set m_pFeedbackEnv = New NewEnvelopeFeedback
    Set m_pFeedbackEnv.Display = pActiveView.ScreenDisplay
    m_pFeedbackEnv.Start m_pPoint
  End If

  ...
 
End Sub


Private Sub ITool_OnMouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
  ...

   ' If user dragged an envelope...
  If (Not m_pFeedbackEnv Is Nothing) Then
    'Use it to calculate new extent
    Set m_pEnv = m_pFeedbackEnv.Stop
   
    ...
   
    Set pSpatialReferenceFactory = New SpatialReferenceEnvironment
    Set pGeographicCS = pSpatialReferenceFactory.CreateGeographicCoordinateSystem(es riSRGeoCS_Pulkovo1942)
    Set pProjectedCS = pSpatialReferenceFactory.CreateProjectedCoordinateSystem(esr iSRProjCS_Pulkovo1942GK_13)

    Set pEnv = New Envelope
   
    pEnv.Project pProjectedCS
   
    pEnv.XMin = m_pEnv.XMin
    pEnv.XMax = m_pEnv.XMax
    pEnv.YMin = m_pEnv.YMin
    pEnv.YMax = m_pEnv.YMax
 
    pEnv.Project pGeographicCS
   
    MinX = pEnv.XMin   ' в этом месте возникает ошибка
    MaxX = pEnv.XMax
    MinY = pEnv.YMin
    MaxY = pEnv.YMax

    ...
   
  End If
End Sub

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

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