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

Получение HSITE

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1 2 След.
RSS
Получение HSITE, Получение HSITE
 
   Добрый день!

Подскажите пожалуйста почему когда я получаю HSITE следующим образом:
Код
 hsite = mapCreateAndAppendTempSite(hmap,0);
При дальнейшей работе с ним объекты на карте не сохраняются.

А если получить HSITE следующим образом:
Код
 hsite2 =  mapGetSiteIdent(hmap, 0)
При работе с hsite2  объекты на карте остаются при повторном ее переоткрытии.



Добавление объектов одинаковое.
Код
        HOBJ hObj = mapCreateSiteObject(hmap, choice, IDDOUBLE2);     // !!! choice - получен либо 1 способом, либо 2-м. В первом случае объекты удаляются с карты, а во втором нет. Почему?
        mapRegisterObject(hObj, 53180000, LOCAL_POINT);
        mapAppendPointPlane(hObj, 6166700, 7419688, 0);
        mapCommitObject(hObj);
        mapFreeObject(hObj);
        view->Repaint();
Изменено: Анастасия - 18.09.2018 09:23:40
 
Здравствуйте!

Специфика временной карты состоит в том, что после ее закрытия файлы карты удаляются (соответственно, вместе с нанесенными на нее объектами).
Примеры работы с временными картами можно посмотреть в п.3.6.3 "Открытие и создание пользовательских карт" Руководства программиста (http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf).
 
Спасибо, это я понимаю. Но Вы можете пожалуйста ответить в чем различие этих HSITE?
 
В плане применения функций MAPAPI различий нет. Просто необходимо учитывать, что при закрытии HSITE для временной карты будут удалены и сами файлы карты.
 
Доброе утро!

В том,то и дело, что по идее различий не должно быть, но они есть. Различия я привела выше.
 
Здравствуйте!

Прошу прощения, что повторно спрашиваю: Вы выполняете переоткрытие карты после нанесения объекта?
 
Я закрываю проект и когда я повторно запускаю его, то на карте остается добавленный объект, если при добавлении я использовала HSITE полученный 2-м способом.
Изменено: Анастасия - 18.09.2018 10:27:58
 
Приветствую!

Есть основная карта HMAP - это может быть карта открытая из ФС (map, sit,sitx..) или с геопортала (WMS,WMTS..)
К основной карте может быть добавлен набор ресурсов, в т.ч. пользовательские карты HSITE из ФС(sit, sitx)Для получения HSITE карты добавленной к основной используется метод
mapGetSiteIdent, в качестве второго аргумента которого передается номер пользовательской карты. Вы передаете номер 0, поэтому получаете HSITE равный HMAP (это указано в доке к mapGetSiteIdent). Далее вы вызываете методы создания объектов и прочее, используя этот HSITE (по факту HMAP) и естественно, эти объекты создаются на основной карте)


С уважением,
Матвеев П.В.
 
Ок, поняла, спасибо за развернутый ответ.

Получается, что это метод hsite = mapCreateAndAppendTempSite(hmap,0) создает в результате своей работы пользовательскую карту и возвращает ее идентификатор.
 
Приветствую!

Да, временную, которая удаляется при закрытии. если нужно не временную, то mapCreateAndAppendSiteUn.

С уважением,
Матвеев П.В.
Страницы: 1 2 След.
Читают тему (гостей: 1)



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

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