Программа, которая работала в версии 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