На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Денис Вицко (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Денис Вицко
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 100 След.
Работа со слоями
 
Надо смотреть код - как Вы находите объект, над которым надо создать новый, и как этот новый объект сохраняется на карту.
Есть подозрение, что при этом исходный объект перетирается.
Работа со слоями
 
Данные, которые не требуется редактировать (а тем более те, которые редактировать нельзя), лучше сразу открывать только на чтение.
В компонентах MapView и MapScreen в методах OpenData и AppendData за это отвечает параметр mode.

По некоторой логике (например, по принадлежности к определенному слою) запретить редактировать какие либо объекты карты, которая доступна для редактирования, можно только программно - самостоятельно выполняя соответствующие проверки непосредственно перед вызовом MapObj.Commit.

А вообще это плохая практика - наносить обстановку на основную карту.
Создайте отдельную пользовательскую карту для нанесения обстановки, открывайте ее на редактирование, а остальные данные только на чтение.
Использование GTK для оцифровки микроснимков
 
Макроснимок (плесень), загруженный в ГИС Панорама

[img]https://a.radikal.ru/a10/2104/18/e05fdeba8514.png[/img]
Поиск объектов на маршруте
 
[QUOTE]Валерий Парусов написал:
Векторный знак[/QUOTE]

у которого всего одна точка метрики?
тогда задача упрощается, надо проверить попадание этой точки на линию.

например, с помощью [URL=http://help.gisinfo.ru/showresult.php?file=seekapi.htm&search=mapGetPointPosition#1]mapGetPointPosition[/URL]
перебрать все отрезки метрики линии со всеми потенциально возможными точками (например, выбранные в прямоугольных габаритах линии)

Еще вариант:
построить зону вокруг линейного объекта, попадая в которую, объекты будут считаться принадлежащими линии - [URL=http://help.gisinfo.ru/showresult.php?file=mapapi.htm&search=mapInsideZoneObjectEx#1]mapInsideZoneObjectEx[/URL]
затем выполнить поиск по этой области, задав еще и условие отбора нужных объектов, - [URL=http://help.gisinfo.ru/showresult.php?file=seekapi.htm&search=mapSelectSeekArea#1]mapSelectSeekArea[/URL]
Использование GTK для оцифровки микроснимков
 
Добрый день!

О фактах применения наших решений в таких целях нам не известно.

В целом, тут нет ничего невозможного. Хотя, возможно, в приложении придется вводить некий масштабный коэффициент, поскольку наше ГИС-ядро предназначено в первую очередь для карт местности, где требуется знаменатель масштаба более единицы.

Поддерживается загрузка файлов форматов BMP, PCX, TIFF, GeoTIFF, JPEG, PNG, IMG, GIF, OZF2, OZFX3, KMZ.

Попробуйте.

Идея интересная. Если реализация проекта на базе GIS ToolKit у Вас будет успешной, можем осветить Ваш проект на нашем сайте.
Перестала рисоваться линия на карте, mapViewUserObject
 
[QUOTE]Сергей Викторович написал:
точно работало в GisToolKit12
Если сейчас по другому, то как правильно это написать?[/QUOTE]

Работать не могло, поскольку координаты линии Вы передаете в пикселах, координаты верхнего левого угла окна на карте в метрах, а в функцию указываете PP_MAP.
То есть полное несоответствие входных параметров.

[B]Совет[/B]:
чтобы не путаться, переведите координаты мыши в mvMapMouseUp в метры с учетом смещения в окне (MapLeft и MapTop)
и передавайте и координаты линии, и координаты верхнего левого угла окна на карте в метрах, обязательно указав это в функции как PP_PLANE.

[B]Лайфхак[/B]:
Всегда можно поиском найти функцию по исходным текстам GIS ToolKit и посмотреть на живом примере, как она используется.
Поддержка языка (шрифтов)
 
[QUOTE]Александр Махин написал:
MapGisServer.BuildAliasName(host, port, name)  [/QUOTE]

Это метод формирования условного имени карты на ГИС Сервере. Он работает с однобайтовой кодировкой.
Скорее всего, символы, ставшие знаками вопроса, не укладываются в один байт.

После вызова, какую строку результата Вы получаете?

Если в ней уже содержаться неправильные символы, попробуйте тогда воспользоваться MAPAPI функцией [B]mapBuildAliasNameUn[/B].[CODE]
 // Сформировать алиас данных на Сервере
 // в формате "HOST#ХОСТ#ПОРТ#ALIAS#условное_имя_карты"
 // host  - имя хоста
 // port  - номер порта
 // number - номер активного подключения к ГИС Серверу от 1 до mapActiveServerCount()
 // alias - имя ресурса (условное имя карты)
 // name  - имя строки для размещения результата
 // size  - максимальный размер строки в байтах
 // При ошибке в параметрах возвращает ноль

_MAPIMP long int _MAPAPI mapBuildAliasNameEx(long int number, const WCHAR *alias, WCHAR *name, long int size);

_MAPIMP long int _MAPAPI mapBuildAliasNameUn(const WCHAR *host, long int port, const WCHAR *alias, WCHAR *name, long int size);[/CODE]
В настоящее время аналог MapGisServer.BuildAliasName для широких символов не реализован.
Перестала рисоваться линия на карте, mapViewUserObject
 
1.
просьба при публикации кода использовать соответствующее форматирование , очень трудно читать

2.
[CODE]points[SelectPoint].X := xx;
points[SelectPoint].Y := yy;[/CODE]

Вы берете координаты мыши без учета смещения карты в окне.
При MapLeft и/или MapTop отличных от нуля рисование может не попасть в видимую область карты.

3.
[CODE]SelectPoint := SelectPoint+1;[/CODE]
и так до бесконечности?
[CODE]points[SelectPoint].X := xx;
points[SelectPoint].Y := yy;[/CODE]
- вот тут в конце концов выйдете за пределы массива и будет access violation

4.
не увидел параметров ImageLine

5.
[CODE]mapViewUserObject(form_main.mvMap.MapHandle,form_main.mvMap.Handle, MapTopLeft, BlueLine, Data, integer(PP_MAP));[/CODE]
- координаты у Вас в пикселах, PP_MAP вообще использовать не стоит, передавайте либо в пикселах (но с правильным смещеением)

[QUOTE] // Отобразить произвольный объект в пределах фрагмента окна (карты)
// hmap   - идентификатор открытых данных
// hwnd  - идентификатор окна,
[B] // point - координаты верхнего левого угла окна на карте
// в соответсвующей параметру place системе координат[/B]
// image - описание вида объекта (см. MAPGDI.H),
// data  - координаты объекта.
// place - вид системы координат (в точках экрана - PP_PICTURE, в метрах в
//         системе координат документа - PP_PLANE, в радианах на эллипсоиде
//         документа - PP_GEO)
// Координаты объекта заданы в соответствии с параметром place

_MAPIMP long int _MAPAPI mapViewUserObject(HMAP hmap, HWND hwnd,
                                          DOUBLEPOINT *point,
                                          PAINTPARM *image,
                                          PLACEDATA *data,
                                          long int place);[/QUOTE]

При этом у Вас координаты верхнего левого угла окна на карте в метрах:
[CODE]form_main.mvMap.ConvertMetric(MapTopLeft.X, MapTopLeft.Y, PP_PICTURE, PP_PLANE);[/CODE]
Поддержка языка (шрифтов)
 
какой функцией пользуетесь для открытия карты?
Библиотека gispicex.dll, Не могу найти библиотеку gispicex.dll
 
В настоящее время актуальной версией GIS Toolkit Active является версия 13.
В его состав входят все необходимые библиотеки ГИС-ядра.
Имена библиотек имеют следующий вид:
gis32*.dll и gis64*.dll (для приложений х32 и х64 соответственно)
Вам нужна gis32picex.dll (или gis64picex.dll - для x64).

После инсталляции GIS Toolkit Active библиотеки ГИС-ядра находятся в \GISToolActive13\GisDll\.
см. файл readme.txt
Скрытый текст
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 100 След.



© КБ Панорама, 1991-2021

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности