Здравствуйте господа разработчики ! Открыта карта В диалоге состава карты делаю невидимым все карты нажимаю кнопку создания объекта получаю вот такой диалог: [IMG]http://delphi-gis.ucoz.ua/Images/ForForum/2014/img027.JPG[/IMG] Вопрос, это такая задумка или ошибка?
Здравствуйте господа разработчики ! [u]исходные данные[/u] Есть карта, у которой подменён классификатор (специально). После перекодировки и сортировки, все объекты имеют системный вид и единственную совпадающую семантику номер 9. Все остальные семантики, помечены звёздочкой как такие, которые отсутствуют в новом классификаторе [u]требуется[/u] заменить девятую семантику, одной из семантик которая помечена звёздочкой (у меня код 11) обе семантики текстовые и одинакового размера. [u]действия[/u] на панели обработки семантик, запускаю задачу перекодировка семантик. Исходную указываю 11 (на что задача реагирует - "нет такой семантики") Результирующую ставлю 9 устанавливаю флаг "заменять при наличии" запускаю...... [u]результат[/u] в объектах которых не было 9-й семантики, появляется семантика 9 у которой значение старой 11-й в объектах у которых была семантика - ничего не происходит
Вопрос: что означает флаг "заменять при наличии", и как он работает ?
Здравствуйте господа разработчики ! Вопрос следующего плана. Можно ли средствами ГИС Карта 2011 "обрезать" значение семантики. Например, у меня 100 объектов с текстовой семантикой 9 = "Москва река", нужно оставить "Москва". --------- П.С. услуги MapApi не предлагать. Не на каждый же случай писать примочки.
Здравствуйте господа разработчики ! Просьба проверить что возвращает функция mapGetMapInfoEx(); в поле TMAPREGISTEREX -> Length (ядро mapacces.dll) У меня полностью корректная и заполненная структура, а Length = 0 ???
Здравствуйте господа разработчики ! Решил использовать технологию работы с временной картой. Создал функцией mapCreateTempSiteEx по паспорту Map: [QUOTE]procedure InitObject(Map: HMap; const RscPath: string); var MR : TMAPREGISTEREX; LR : TListRegister; begin FMap := Map; if FTmpSite<>0 then mapCloseMap(FTmpSite); FTmpSite := 0; if FileExists(RscPath) and (FMap<>0) then begin mapGetMapInfoEx(FMap, 1, MR, LR); [B]// функция InitObject , запоминает в секции Private новую временную карту[/B] FTmpSite := mapCreateTempSiteEx(PChar(RscPath),MR); FSpaceDraw.SetupMap(FTmpSite,FTmpSite,0); end; end;[/QUOTE] Карта создана, хендл имеется, объекты наносятся НО Сразу же после создания временной карты, даю серию команд:
[QUOTE] [B]// на вход этой функции, подаётся FTmpSite = FSite которую про инициализировали в функция InitObject (см. верхний блок)[/B] .... FSelect := mapCreateSiteSelectContext(FSite,[B]FSite[/B]); [B]// тут была опечатка[/B] mapSelectLocal(FSelect, -1, 0); mapSelectLocal(FSelect, OL_SQUARE, 1); mapSelectSemanticAppend(FSelect, 2, '14005', 5); FO := mapCreateSiteObject(FSite, FSite); [B]if mapSeekSiteSelectObject(FSite, FSite, FO, FSelect, cWO_FIRST)>0 then[/B] [/QUOTE] Выделенная функция при первом обращении выдаёт [IMG]http://delphi-gis.ucoz.ua/Images/ForForum/2014/img020.JPG[/IMG] ---- Размышления. Судя по роду ошибки, создание временной карты, впрочем как и обычной пользовательской происходит без формирования файла семантик SHD (для постоянной карты это утверждение можно проверить создав пользовательскую карту... Файл SHD изначально отсутствует, а появляется когда какой либо объект "заимеет семантику") Не знаю как устроен механизм внутри ядра, но создание SHD файла в постоянной карте происходит адекватно, а в временной карте - с ошибкой. Думаю, что ошибка возникает при обращении mapSeekSiteSelectObject с (mapSelectSemanticAppend) в секции ядра, который пытается открыть файл семантик и произвести поиск.. Одним словом, просьба проверить.
забыл: Ошибка происходит в mapacces.dll и "свите библиотек". Работаю в ГИС Карте 2011. Решение проблем в gisacces.dll не предлагать :D
Здравствуйте господа разработчики ! Просьба пояснить принцип работы функции mapGetHeightArray при передаче различных параметров HMAP 1. вариант когда HMAP - отдельно открытая пользовательская карта 2. вариант когда HMAP - пользовательская карта в составе сборки карт(открытая mapOpenSiteForMap) ------- во втором случае функция возвращает 1 (ошибки нет) а в массив возвращает -11111. Если второй вариант неприемлем, просьба подкорректировать результат функции
Здравствуйте уважаемые разработчики ! На определённый участок местности нужно создать матрицу высот. Первая попытка - на карте матрицы нет, на диске есть. Открываю палитру матрицы и вижу вот такое месиво чисел: [IMG]http://delphi-gis.ucoz.ua/Images/ForForum/2014/img016.JPG[/IMG]
Вторая попытка - то же, но палитра чёрно-белая. ---- Передёрнул палитру с текущая на стандартная - параметры пересчитались, матрица на карте отобразилась Просьба проверить порядок формирования палитры, после выполнения задачи "Построение матрицы"
Пол года назад мне посоветовали формулу перевода метров в пиксели при создании пользовательских знаков. Формула выглядит приблизительно вот так: [CODE] if (data.ShowScale != 0) m2px = 1E6/data.ShowScale*context->PixelX; ДЛИНА_пкс = ДЛИНА_М * m2px; [/CODE] Сообщение и тема [URL=http://www.gisweb.ru/forum/messages/forum2/topic5329/message35769/#message35769]ВОТ ТУТ[/URL]
Вопрос, как вклинить в формулу флажок "уточнять площадь и длину", который "меняет" длины объектов на карте в 1.5-3 раза на широтах больших 55 градусов.
Здравствуйте господа разработчики ! Работаю с картой скачанной с Вашего сайта с названием "Ленинградская область" + "Карта Санкт-Петербурга" объединённые до кучи, на базе Ленинградской области. Нанёс несколько объектов меняющих вид по метрике. Получаю следующую картину: [IMG]http://delphi-gis.ucoz.ua/Images/ForForum/2014/img015.jpg[/IMG] Линейку специально замерял средствами ГИС Карты 2011, показывает нужное расстояние. НО длина чёрной линии = 3780 метров. Информация взята с официальных источников. Кроме того, линейка которая показывает 2 километра на этом участке явно "врёт" вместе с измерителем длины (который вызывается с правой панели по F5). Если сопоставить эту длину из зданием в левой нижней части рисунка, то получается дома размером по 500 метров. Кажется мне что чтото явно намутили с расстояниями в ядре. Просьба проверить
П.С. будет не красиво смотреться двухкилометровая линейка на фоне 2-х километровой ВПП которая в трижды длиннее.
Здравствуйте господа разработчики ! Оговорюсь сразу, меня интересует исключительно интерфейс описания функций ядра на Паскале. ------- Просьба пояснить писанину в функции mapSetSiteBorder [CODE] // Обновить размеры пользовательской карты и габариты района ! // Если параметр dfarme равен 0; пересчитывает только // габариты района (mapGetPictureSize;...Width;...Height - могут // вернуть другие значения) // После вызова этой функции необходимо согласовать параметры // скроллинга подобно масштабированию карты // Данная функция необходима при редактировании карты типа Site; // открытой в качестве основной карты (mapCreateSite); когда // габариты карты меняются. Заранее могут быть заданы расширенные // габариты (сразу после создания или позже). // hMap - идентификатор открытой основной карты // hSite - идентификатор открытой пользовательской карты // dframe - координаты прямоугольной области района // place - система координат // При ошибке возвращает ноль
function mapSetSiteBorder(Map : HMap; Site : HSite; var Frame : TMAPDFRAME; place: integer): integer; // 27/04/01 {$IFNDEF LINUXAPI} stdcall {$ELSE} cdecl {$ENDIF} external sGisAcces;[/CODE]
1. Что означает "Если параметр dfarme равен 0;" ?. Я понимаю что в КБ идейных Сишников подавляющее большинство, поэтому описание на Паскале или игнорируется или вообще не совершается. Если Вы хотите чтобы программист вклинил туда "0", просьба объявить функцию в соотвествии с описанием, а для этого нужно ввести ещё один тип PMAPDFRAME = ^TMAPDFRAME
2. Фраза "// Данная функция необходима при редактировании карты типа Site; // открытой в качестве основной карты (mapCreateSite); Вопрос, зачем в функции 2 параметра [B]Map[/B] и [B]Site[/B] если работа осуществляется с автономно открытой картой
3. Подставил в функцию Map и открытую по ней Site, точнее созданную функцией mapCreateAndAppendSite. При вызове функции с пустым параметром: [CODE] function mapSetSiteBorder(Map : HMap; Site : HSite; Frame : PMAPDFRAME; place: integer): integer; где mapSetSiteBorder(FMap, FSite, nil,0); [/CODE] Габариты карты вообще не пересчитываются.
4. При попытке выполнить пункт 3 с автономно открытой картой вот так: [CODE] mapSetSiteBorder(FSite, FSite, nil,0); [/CODE] Вылетает сообщение об ошибке [IMG]http://delphi-gis.ucoz.ua/Images/ForForum/2014/img013.JPG[/IMG]
------- ИТОГ: 1. просьба привести описание и объявление функции в соответствии с тем, что она делает 2. просьба пояснить, каким образом пересчитать габариты пользовательской карты, после выполнения перемещений объектов
+уточнение. Функция проверяется внутри задачи ГИС Карта 2011. SIT открывается как автономно, так и в составе карты PanTask.FHMap