ABCDEFG
1
категорияметод объектасутьКто внес вопрос
/где встретилось
куски кодаЗамечания от разработчиков (Рустам)
обсуждения на отдельных листах этого документа
Замечания от разработчиков (Михаил)
2
возможный багIIngeoContour.AddPartsFromв контуре было 2 контурпарта (которые тоже добавлялись через апи), при добавлении контурпартсов из другого контура с помощью этой функции, последний контурпарт исходного дублировался вместо добаляемого

обнаружена была на 4.4.0.177 - просто мы пока эту версию ставим заказчикам, как вродебы стабильную
СамараИнформспутник
печать отчетов TzuContours.FillByObject
iBaseCont.AddPartsFrom(iNewCont);
заменили на
ContourAppendPartsFrom(iBaseCont, iNewCont);
где
procedure ContourAppendPartsFrom(const toContour, aSource:IIngeoContour);
var tmpCont :IIngeoContour;
begin
tmpCont := CreateEmptyContour(inApp);
tmpCont.AddPartsFrom(toContour);
toContour.Clear;
toContour.AddPartsFrom(tmpCont);
toContour.AddPartsFrom(aSource);
tmpCont := nil;
end;
что-то было, вроде исправлял, но нужно проверить
3
возможный багIIngeoContourPart.Deleteлибо не работает, либо не обновляет IIngeoContour.CountСамараИнформспутник
печать отчетов TzuContours.FillByObject
эта процедура не рабочая как раз из-за такого поведения
//извлечь такую-то часть контура как отдельный контур
function ExtractContourPartAsContour(const aContour:IIngeoContour; cpIndex:integer):IIngeoContour;
var i :integer;
resContour :IIngeoContour;
begin
resContour := CreateEmptyContour(inApp);
resContour.AddPartsFrom(aContour);
for i := cpIndex-1 downto 0 do
resContour.Item[i].Delete;
for i := resContour.Count-1 downto 1 do
resContour.Item[i].Delete;
Result := resContour
end;
см. пункт 1
4
хотелкаIIngeoContour.InsertPartFrom(
insertToIndex :int; //-1 - toEnd
aSource :IIngeoContourPart);
Возможность добавлять часть контура в произвольную позицию в списке частей контуровСамараИнформспутник
5
хотелкаIIngeoContour.PartMoveTo(
fromPartIndex:int;
toPartIndex :int);
возможность менять порядок частей контура в пределах контураСамараИнформспутник
эта возможность нужна некоторым пользователям.
Мы конечно написали формочку которая позволяет пользователям
менять порядок частей котнура, но сами части копировались покоординатно,
что для многоточечных частей не эффективно
6
хотелкаIIngeoContour.Generalize( ??? );Сократить число вершин, на основе какойнить погрешности или масштабаСамараИнформспутник
Обсуждение пнкта 6
7
хотелкаIIngeoMapObjects.Application :IIngeoApplication;иногда приходится таскать в процедуры 2 параметра: транзакцию и ссылку на ингео, которая нужна для каких нить медаданных и прочегоСамараИнформспутник
это пока под вопросом, обсуждать нужно
8
хотелкаIIngeoMapObjects.CreateContour :IIngeoContour;часто нужно создавать временные контура для промежуточных вычислений, а приходится добираться до IIngeoApplication
у IIngeoApplication эту возможность отбирать не нужно
СамараИнформспутник
это пока под вопросом, обсуждать нужно
9
хотелкаIIngeoMapObject.Layer :IIngeoLayer;опять же, неудобно добираться до метаданных слоя, ибо нужно знать ссылку на IIngeoDBСамараИнформспутник
Обсуждение пнкта 9
10
несильная хотелкаIIngeoXXX.Clone :IIngeoXXX;Актуально для некоторых объектов в апи ИнГео. Например,
IIngeoContour.Clone, IIngeoContourPart.Clone, IIngeoLayer.Clone, и т.д.
СамараИнформспутник
аналогично следующему пункту.
11
несильная хотелкаIIngeoXXX.Assign(aSource :IIngeoXXX);Актуально для других некоторых объектов в апи ИнГео, в основном для объектов из InScripting_TLB. Например,
IInBrush.Assign, IInPen.Assign и т.д.
СамараИнформспутник
Обсуждение Обновления API'!A1
12
хотелкаIIngeoUserProfile.Get PutХотелось бы чтобы сохраняемые значения не ограничивалиь в количестве символов или был бы организован более удобный интерфейс для хранения модулями своих настроек в БДСамараИнформспутник
Этот метод скорее всего не измениться, ограничение с количеством символов связано с ограничениями в таблице в которой сохраняются данные.
Лучше продумать, какой-нибудь дополнительный интерфейс позволяющий сохранять настройки модулей.
Варианты:
1. Сделать доступ до таблицы Addons, типа
TryLoadModuleData(Key: String; out aData: String): Boolean
SaveModuleData(Key: String; Data: String)
RemoveModuleData(Key: String)

2. Сделать интерфейс типа GetModuleData(Key: String): IModuleSettings
IModuleSettings = interface
GetBoolean(Key: String): Boolean
GetString(Key: String): String
...
end

еще дополнительно хочется (с чем самому приходилось сталкиваться, либо с чем народу приходится извращаться, хотя это не относится к основной функциональности модулей)

1. сделать доступ для модулей доступ к файловой системе на стороне сервера, например для модуля указать папку которая ему доступна, с правами (на чтение, на запись)

2. вынести наружу, для модулей механизм оповещений, для того чтобы модуля могли рассылать сообщения другим своим копиям
3. вынести наружу модулей механизм блокировок
4. универсальный механизм лицензирования (идея есть и даже реализация тоже есть (используя цифровые подписи, ассиметричные ключи))
5. ...

и вообще хотелось бы от вас услышать список предложения облегчающих разработку модулей
13
хотелкаSetTimerвозможность вызова скрипта с заданным интервалом чтоб без извратов с html окном?а для чего такую фичу используете ?
и вообще как часто используете чисто скриптовые модуля ? и почему ?
14
хотелкаIIngeoMapObjects.QueryByContour2
(aStyleIDs, aContour, aRelationMask, aRelation)
Иногда нужно запрашивать объекты со стилями не определяющими геометрию, иногда нужны не все стили определяющие геометрию, а только избранные.
щас мы делаем так: у нужных стилей устанавливаем ДефайнГеометри, у ненужных сбрасываем, делаем запрос, восстанавливаем.
А это требует прав на изменение метаданных слоя.
короче, очень полезная фича
СамараИнформспутник
Получение данных РосРеестра
15
хотелкаIIngeoLayer.ObjectCaptionFormat :string;
IIngeoMapObject.Caption :string;
идея: для каждого слоя завести строку формата, с помощью которой для каждого объекта слоя, можно получить его строковое юзер-френдли описание. (через проводник эту строку можно будет задать)
IIngeoMapObject.Caption := IIngeoMapObject.FormatText(IIngeoLayer.ObjectCaptionFormat);
Это сильно упростит отображение объетов для юзера из различных модулей.

Если эта идея получит развитие, то хотелось бы чтобы выросло число спец названий поддерживаемых FormatText
- не только {.Square}, но и допустим {.LayerName} или {.X1} или {.FirstGeoDefStyleName} и т.п. понапридумывать можно еще кучу
СамараИнформспутник
многие новые модули было бы легче писать
IIngeoMapObject.Caption := IIngeoMapObject.FormatText(IIngeoLayer.ObjectCaptionFormat);
16
хотелкаДобавление в API функций для работы с фильтром отображенияВ ингео есть фильтр отображения объектов: Вид\Параметры отображения
Хотелось бы получить программный доступ к данному функционалу, чтобы из модулей более наглядно показывать пользователям те или иные ситуации
СамараИнформспутник
некоторым модулям реально нехватает этих фишек, приходится рисовать контура поверх уже отрисованной карты, выглядит не очень современно :)
17
багIInImage.Surface.Navigator.Navigateпосле выполнения данного метода сбрасываются настройки Surface.Navigator.YMirror и Surface.Navigator.XAngle, то есть 2 куска кода дадут разный результат (код смотри в другом столбце)
iImg.Surface.Navigator.Navigate cx, cy, scale
iImg.Surface.Navigator.YMirror = false
iImg.Surface.Navigator.XAngle = 0

application.activedb.paintXML iImg.Surface, pXML
iImg.SaveToFile fn
----------
iImg.Surface.Navigator.YMirror = false
iImg.Surface.Navigator.XAngle = 0
iImg.Surface.Navigator.Navigate cx, cy, scale

application.activedb.paintXML iImg.Surface, pXML
iImg.SaveToFile fn
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45