www.map-info.ru :: Просмотр темы - Замер расстояний в MapX
Заказать MapInfo Professional 10
На главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - 'MapX' Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
Лена
Гость





СообщениеДобавлено: Вт Апр 11, 2006 3:39 pm    Заголовок сообщения: Замер расстояний в MapX Добавить ответ со ссылкой на данный текст

Как при помощи MapX мерить расстояния на карте?
Приведите, пожалуйста, правильный код события Map1PolyToolUsed (Builder или Делфи). Чтобы пользователь мог вычислить расстояний на карте, используя инструмент и получить общую сумму при двойном щелчке.
Спасибо.
Вернуться к началу
Лена
Гость





СообщениеДобавлено: Вт Апр 11, 2006 3:39 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Сама разобралась:
if ( ToolNum != 4)
return;

if (Flags == miPolyToolEnd)
{
Variant X;
X =(Points);
CMapXFeature *f;
f = Map1->FeatureFactory->CreateLine(X);
int d = f->Length;
sStatusBar1->Panels->Items[2]->Text = AnsiString("Расстояние: ") + AnsiString(d) + AnsiString(" м");
}
Вернуться к началу
КД



Зарегистрирован: 30.10.2007
Сообщения: 25

СообщениеДобавлено: Пт Ноя 07, 2008 6:47 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Лена, не могли бы Вы помочь разобраться? А то я не программер, и Ваш код труден для моего понимания. Та же задача – измерить расстояние с помощью полилинии. Т.е. чтобы выводилась длина каждого отрезка, а в конце – общая (или отдельно, если можно). Вы ведь именно так сделали? Обычная линия получается, но там проще. А здесь в PolyToolUsed нет координат. Среда разработки – Access.

Для инструмента "Линейка" объявлена константа:
Public Const miRulerCustomTool = 500

При загрузке формы создаем этот инструмент:
Me!mapxPointsLeg.CreateCustomTool miRulerCustomTool, miToolTypePoly, miLabelCursor, miLabelCursor, miLabelCursor

Включили инструмент "Линейка"
Me!mapxPointsLeg.CurrentTool = miRulerCustomTool

Используем инструмент
Private Sub mapxPointsLeg_PolyToolUsed(ByVal ToolNum As Integer, ByVal Flags As Long, _
ByVal Points As Object, ByVal bShift As Boolean, ByVal bCtrl As Boolean, EnableDefault As Boolean)

'определим в каком состоянии находится инструмент
Select Case Flags

Case miPolyToolBegin 'начали использование инструмента
Select Case ToolNum 'определяем какого именно инструмента
Case miRulerCustomTool 'используем "Линейку"
'обнуляем поле, где выводится пройденное расстояние
Me!lblDistance.Caption = "дистанция:"

End Select

Case miPolyToolInProgress 'продолжается использование инструмента
Select Case ToolNum 'определяем какого именно инструмента
Case miRulerCustomTool 'используем "Линейку"

End Select


Case miPolyToolEnd 'закончили использование инструмента по двойному щелчку или Enter
Select Case ToolNum 'определяем какого именно инструмента
Case miRulerCustomTool 'используем "Линейку"

End Select

Case miPolyToolEndEscaped 'закончили использование инструмента по Escape
Select Case ToolNum 'определяем какого именно инструмента
Case miRulerCustomTool 'используем "Линейку"

End Select

End Select

End Sub

Вроде бы Вы создали новый объект? но как именно?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
КД



Зарегистрирован: 30.10.2007
Сообщения: 25

СообщениеДобавлено: Ср Ноя 26, 2008 6:59 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Разобрался.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - 'MapX' Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru