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

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

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

Страницы: Пред. 1 ... 317 318 319 320 321 322 323 324 325 326 327 След.
Ключи
 
Здравствуйте Vladimir Mart !
Давайте проанализируем с Вами ваш ответ,
и вы получите новый, понятный Вам:
[QUOTE]
Странно....   ....Открываю карту, которой ключ не нужен - результат = 0.
Что необходимо сделать перед вызовом данной функции?
[/QUOTE]
Узер открыл шаровую карту не требующую ключа, результат 0 - (сигнализация отсутствия ключа)
Теперь хитрый узер открытую карту начинает наращивать (добавлять объекты, листы, и.т.п.)
И что получается ? Если ключ выдает [B]не 0 [/B]- он спокойно работает без ключа.
-----------------------
В данном случае шаровая карта открывается с пометкой - "нет ключа". Если начинать ее наращивать
то на определенном этапе "шара обламывается".
Вот и весь алгоритм.
Лично я считаю организацию именно такой защиты - правильной
Рубрикатор для карты города
 
Или как в приведенном мной примере

<MapList>
<Map Alias="Europe" Level="1" Comm="TRUE"/>    ВАШЕ Авто
<Map Path="E:\@ATLAS\Европа\Европа.map" Alias="Европа" Level="2"/> ВАШИ Авто предприятия
<Map Path="E:\@ATLAS\Европа\Sites\ГИДРОГРАФИЯ.SIT" Alias="ГИДРОГРАФИЯ" Level="2"/> ВАШИ Автомагазины
<Map Path="E:\@ATLAS\Европа\Sites\Города.sit" Alias="Города" Level="2"/> ВАШИ Автосервис
<Map Path="E:\@ATLAS\Европа\Sites\ПОКРЫТИЯ.sit" Alias="ПОКРЫТИЯ" Level="2"/> МОИ Граржи

<Map Alias="Государство и власть" Level="1" Comm="TRUE"/>  
.....
и пошло то же самой только карты другие
.....

</MapList>
Изменено: XENA - 19.02.2009 15:19:48
Не тот глуп кто не знает, а тот, кто не знает где искать.
Проьблема при импорте растров с привязкой TAB
 
Господа!
Если Вам нужна проекция, СК, географические
координаты переганяейте растр с привязкой Ozi
И все проблемы решены ?
Для коррекции "точка изображения"/"географический аналог"
качайте прогу Ozi Explorer и вганяйте растр в любую ГИС. На данный момент данный формат вроде все ГИС Поддерживают.
----------------------------
К Разработчикам:
Возможно ли создание задачи в ГИС Панораме подобной редактору
Ozi Explorer (что-бы не держать лишнее програмное обеспечение на Ж/Д) ?
Спасибо за ответ
Изменено: Александр Поленок - 20.02.2009 15:05:00 (Ссылки на сторонние программы запрещены!)
"Последовательный номер" и "Внутренний код"
 
Здравствуйте господин  V_Bolotoff!
Попробую разгребти Ваш роман по порядку
красным будет Ваш вопрос, зеленым мой ответ
проведу аналог с БД
-------------------------------------------------
1.Подскажите, что возвращает функция mapCommitObjectAsNew()?
Указатель на объект, при ошибке 0.
Размышления: Можно много дискусировать с разработчиками на данную тему
но для меня лично число значения перемнной типа HObj, является адресом
в некой странице оперативки указывающей на структуру объект-Панорамы
в паскале аналог Integer(Указатель)
если результат работы функции = 0 то => Integer(nil)=0 (можете проверить)


вопрос по терминологии - "Последовательный номер" и Внутренний код (уникальный ключ)" объекта

Последовательный (порядковый) номер объекта в карте - аналог "ИНДЕКС записи в Базе данных" - поле PRIMARY KEY (поняли правильно)

mapGetObjectNumber() - взвращает этот порядковый номер? ДА

Внутренний код (ключ, уникальный номер) - уникальное число, приписываемое объекту в рамках одного листа, и это число никогда не меняется при манипуляциях с объектами карты.
ДА
mapObjectCode() - возращает номер (индекс) объекта в классификаторе
mapObjectKey()  - ключ Это тот же аналог (ИНДЕКС записи в Базе данных) только для каждого листа отдельно  

mapSeekSiteObject(..key), mapSeekObjectInList(.. key) - аналог SELECT * FROM [table] WHERE "KEY"=Ключу AND LIST=ЛИСТ если таков есть - лист
mapGetSiteObjectNumberByKey() - возвращает порядковый номер по ключу? аналог SELECT ID FROM [table] WHERE "KEY"=Ключу ID - поле PRIMARY KEY

Что надо передать в функцию mapDeleteObjectNumber() ключ или последовательный номер?
Если последовательный номер в карте, то зачем там параметр "номер листа".

аналог DELETE FROM [table] WHERE "ID"=Номер AND LIST=ЛИСТ если таков есть - лист

Что происходит с кодом объекта внутри листа при переносе этого объекта на другой лист? Появляется дыра в нумерации - которая убирается в Панораме F7 с галочкой "удалять копии отредактиро..."
Какой код высвечивается в окне "Выбор объекта" в строке "Номер"? Key объекта

При создании новой карты из одного листа (или карты обстановки) внутренний код объектов первоначально совпадает с последовательным номером?

в чистой таблицы БД при добавлении записи (с установленной автоинкрементацией полей) происходит то же
---------------------------------------
Вывод со всего этого разноцветного текста:
[B]Структура карты ГИС Панорама создавалась по принципу струкутры Базы данных.
Отсюда напрашивается заключение: То что Вы видите с инексными полями таблиц в БД
происходит и в карте ГИС Панорама[/B]

PS: Господа разработчики могут подкорректировать мой текст (буду даже рад)
Все эти рассуждения написаны с учетом многолетней практической работы, и
"вычислены" методом аналогов и сравнений, ошибок и проверок.
Модификация стандартной страницы GisWebServer-a
 
Ответ предельно понятен !
Обработка поля таблицы БД по заданному
шаблону (алгоритму) - невозможна.

Спасибо за ответ !
Не тот глуп кто не знает, а тот, кто не знает где искать.
Сохранение матрицы высот, Помогите с сохранением матрицы высот
 
Здравствуйте V_Bolotoff
[QUOTE]// сохранить текущую карту в файл bmp (mapv: TMapView - глобально)[/QUOTE]
Вопрос вроде заключается в том как экспортировать открытую матрицу в
растровое изображение, так же как и экспорт открытого растра в растровое изображение
функциями:
SaveRstToPcx, LoadRstToBmpConverter, LoadRstToTiffConverter и.т.п
Подобные функции в ГИС Панораме не предусмотрены для матриц
Для этого можно "обойти" кое какие догмы и сделать приблизительно так:
-----------------------------
// открываем  матрицу как карту ОТДЕЛЬНО от района работ !!!
 mtw:=mapOpenMtr(PChar('C:\Panorama10\Data\Podolsk\Podolsk.mtw'),GENERIC_READ);
// задаем фрейм (проверялось как раз на Подольске)
 F.X1:=6147650;  F.Y1:=7410450;
 F.X2:=6157650;  F.Y2:=7420450;
// используем функцию с gispicex.dll закидывая ей вместо нормальной карты МАТРИЧНУЮ
 LoadMapToBmp(Mtw,PB1.Handle,F,8,100000,300,'C:\res.bmp'#0);
 mapCloseMap(mtw); // закрываем

-----------------------
и оп-па, матрица сохранена как картинка
при этом в районе не нужно ничего отключать
и включать. Матрица может быть уже открытой
функция переоткроет ее сохранить и закроет
(незаметно для ЮЗЕРА)
Изменено: XENA - 17.02.2009 14:53:39
Поиск в слое
 
Реальный кусок работающего кода под текстовый конвертор
может поможет ?

Вот это то что Вам надо:
// ---------------------------
         Select := mapCreateMapSelectContext(FMap);
// в этом местое могут быть и Ваши условия:
{mapSelectLayer hSel, -1, 0
mapSelectLayer hSel, 20, 1
mapSelectObject hSel, -1, 0
mapSelectObject hSel, 432, 1}

         mapSelectLocal(Select, -1,0);
         mapSelectLocal(Select, OL_MARK,1);


         Obj:=mapCreateObject(FMap,1,KM_IDFLOAT2,0);  
         i:=0;
         while mapSeekSelectObject(FMap, Obj, Select, 4*Byte(i>0))<>0 do
         begin
          // тут мутим с объектом Obj
          inc(i);
         end;
         mapFreeObject(Obj);
         mapDeleteSelectContext(Select);

//-----------------------
Вот это на будущее:
при работе с ГИС Панорамой (mapTotalSeekObjectCount - выбраные руцями объекты)
Может в дальнейшем пригодится
-------------------------------------
procedure TMainForm.PanoramaToText;
var i, c     : integer;
   Obj      : HObj;
 //  aFile    : TSTringList;
 //  FN       : string;
  // ObjPar   : TObjParam;
begin
if not _plane.Checked and (mapIsGeoSupported(FMap)=0) then
begin
 MessageBox(0,'Преобразование невозможно !','Моя программа',0);
 exit;
end;
//if SD.Execute and (SD.FileName<>'') then FN:=SD.FileName else exit;
//aFile:=TSTringList.Create;
Obj:= mapCreateObject(FMap, 1, IDFLOAT2, 0);
i:= 0;
c:=mapTotalSeekObjectCount(FMap);
[B] if mapGetTotalSelectFlag(FMap)<>0 then[/B]
while mapTotalSeekObject(FMap, Obj, WO_FIRST+4*Byte(i>0))<>0 do
begin
 // ObjPar:=UnloadObjectParam(Obj, _plane.Checked);
 // MoveParamTofile(ObjPar, aFile);
 // ClearObjParam(ObjPar);
 // PB.Position:=Round(100*(i+1)/C); // "бегунок" - ProgressBar
  inc(i);
end;
if Obj<>0 then mapFreeObject(Obj);
//aFile.SaveToFile(FN);
//aFile.Free;
end;
----------------------
[B]Думаю что Ваш вопрос удовлетворен ?[/B]
Изменено: XENA - 10.03.2009 19:29:56
Зоны
 
Здравствуйте Артем !

[B]Это с objapi.h (входит в комплект ГИС Толл-Кит)[/B]
------------------------------------
typedef struct OBJECTFORM      // ПАРАМЕТРЫ ОТОБРАЖЕНИЯ ИНФОРМАЦИИ ОБ ОБ'ЕКТЕ
{
 HWND        Window;          // Идентификатор окна документа
 POINT       Position;        // Положение курсора в точке выбора в координатах экрана        //28/11/02
 POINT       LeftTopPosition; // Координаты левого верхнего угла карты в пикселах в районе    //28/11/02
 long int    PlaceSystem;     // Текущая система отображения координат метрики объекта:
                              // 1 - в метрах на местности
                              // 2 - в условных единицах карты (дискретах)
                              // 3 - в пикселах текущего полного изображения
                              //     эллипсоид Красовского 1942г.
                              // 4 - в радианах в соответствии с проекцией
                              // 5 - в градусах ...
                              // 6 - в градусах, минутах, секундах ...
                              // 7 - в радианах (общеземной эллипсоид WGS84)                    //28/01/05
                              // 8 - в градусах (общеземной эллипсоид WGS84)
                              // 9 - в градусах, минутах, секундах (общеземной эллипсоид WGS84)
 short int   FormMode;        // Вид окна отображения объекта
                              // 0 - только общие сведения об объекта
                              // 1 - общие сведения и семантика объекта
                              // 2 - общие сведения и метрика объекта
                              // 3 - общие сведения и масштаб отображения объекта
                              // 4 - общие сведения и внешний вид объекта
                              // 5 - общие сведения и принтерный вид объекта
                              // 6 - общие сведения и графический вид объекта
                              // -1 - -6 соответствующая информация в полноэкранном варианте
 short int   MarkPointMode;   // Вид окна отображения карты
                              // Информация устанавливается побитно
                              // Перечисление выполнено начиная с младших разрядов
                              // Состояние мониторинга положения текущей точки метрики
                              // 0 - не отслеживать положение текущей точки метрики
                              // 1 - отслеживать положение текущей точки метрики
                              // Состав отображаемых карт
                              // 0 - отображается только карта, содержащая объект
                              // 1 - отображаются все карты
 HMAP        Map;             // Идентификатор открытой векторной карты
                              // (УКАЗАТЕЛЬ НА TMapAccess)
}
 OBJECTFORM;

[B]А это с mapapi.h (входит в комплект ГИС Толл-Кит)[/B]


typedef struct TASKPARM        // ПАРАМЕТРЫ ПРИКЛАДНОЙ ЗАДАЧИ
{
 long int    Language;        // Код языка диалогов (1 - ENGLISH,
                              // 2 - RUSSIAN, ...)
 HINSTANCE   Resource;        // Модуль ресурсов приложения
 const char* HelpName;        // Полное имя файла ".hlp"
 const char* IniName;         // Полное имя файла ".ini" приложения
 const char* PathShell;       // Каталог приложения (exe,dll,...)
 const char* ApplicationName; // Имя приложения
#ifdef WIN32API
 HWND        Handle;          // Идентификатор главного окна приложения
#else
 MSGHANDLER  Handle;          // Идентификатор обработчика команд главного окна приложения
#endif
}
-----------------------------
[B]По полям думаю разберетесь [/B]
mapSetObjectPress
 
Теперь все стало на свои места
Для меня лично, данная тема закрыта.
Спасибо за диалог!
mapSetObjectPress
 
1. Работа программера:
[QUOTE]Несоответствие флагов должно исправляться контролем карты автоматически (в соответствии с приоритетом).[/QUOTE]
в этом случае умножается на ноль первым же открытием карты ГИС Панорамой.
В ситуации: узер выставил подписи для разношерсных, городов на не правильно
прошелся задачей MapTask (все выровняно и смаштабировано) - все стало на места.
Закрыл/Открыл - "0".

2.
[QUOTE]Я писал для программеров. [/QUOTE]
Но программеры под которых Вы пишите в свою очередь пишут под юзеров
А они в свою очередь очень капризны.
К примеру функции:
_MAPIMP long int _MAPAPI mapObjectTopScale(HOBJ info);
_MAPIMP long int _MAPAPI mapSetObjectTopScale(HOBJ info,long int scale);
_MAPIMP long int _MAPAPI mapObjectBotScale(HOBJ info);
_MAPIMP long int _MAPAPI mapSetObjectBotScale(HOBJ info,long int scale);
срабатываю корректно (изменяя при этом линейку в свойстве объекта)
Почему-бы не учесть это для вышеописанных функций ?
Изменено: XENA - 15.02.2009 20:19:33
Страницы: Пред. 1 ... 317 318 319 320 321 322 323 324 325 326 327 След.



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

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