SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0002440 | SAS.Планета | [All Projects] Хотелка | public | 29-05-2014 04:39 | 02-06-2014 09:09 |
|
Reporter | Waleryth | |
Assigned To | vdemidov | |
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | closed | Resolution | duplicate | |
Platform | Windows | OS | 7 | OS Version | Ultimate |
Product Version | | |
Target Version | | Fixed in Version | | |
|
Summary | 0002440: Закидывание через неопределенное время метки из стороннего ПО, например, метки отбор проб. |
Description | Я тут поизучал темы на форуме и пришел к выводу что такая небольшая модификация придется по вкусу многим пользователя SAS.Планета. Необходимо чтобы происходила запись трека и одновременно в фоне происходило закидывание меток, например, отбор проб. |
Steps To Reproduce | 1). С треком все понятно.(Для эмуляции трека использовал GPSGate).
2). Для отправки в CAC данных точек я использовал - wm_copydata по handle реализованом в ПО для обработки спектра на VisualBasic.
В CAC я реализовал обработчик для принятия сообщения. далее я разбивал строку на составляющие.
s:=PAnsiChar(MessageData.CopyDataStruct.lpData); //Устанавливаем текст из полученных данных
tSL := TStringList.create; //создаём класс
tSL.text := stringReplace(s,';',0000013#10,[rfReplaceAll]); //заменяем все ';' на символы конца строки
//получаем StringList
In_PointName:=tSL[0]; //название точки
// tSL[1] //Lat широта Y_
// tSL[2] //Lon долгота X_
In_PointDesc:=tSL[3]; //Описание точки
Для добавления точки на карту использовал
при этом указал координаты точки полученные от 'wm_copydata'
VLonLat.X:=X_; //Lon долгота
VLonLat.Y:=Y_; //Lat широта
if FMarkDBGUI.AddNewPointModal(VLonLat) then begin
FState.State := ao_movemap;
end;
Далее добавил дополнительную функцию
TMarksDbGUIHelper.AddNewPointModal(const ALonLat: TDoublePoint): Boolean;
которая является аналогом с некоторыми изменениями
TMarksDbGUIHelper.NewPointModal(const ALonLat: TDoublePoint): Boolean;
Долее для установки метки без запуска модальной формы добавления точки закоментил
//VMark := FfrmMarkAddPoint.EditMark(VMark, true, VVisible);
функция получилась так:
function TMarksDbGUIHelpe.AddNewPointModal(const ALonLat: TDoublePoint): Boolean;
var
VMark: IMarkPoint;
VVisible: Boolean;
VResult: IMark;
begin
Result := False;
VVisible := true; //коорд, имя точки, описание
VMark := FMarksDb.MarksDb.Factory.CreateNewPoint(ALonLat, frmMain.In_PointName, frmMain.In_PointDesc);
//установка точки без запуска модальной формы добавления точки
//закометнировал вызов формы добавления метки
//VMark := FfrmMarkAddPoint.EditMark(VMark, true, VVisible);
if VMark <> nil then begin
VResult := FMarksDb.MarksDb.UpdateMark(nil, VMark);
if VResult <> nil then begin
FMarksDb.MarksDb.SetMarkVisible(VMark, VVisible);
Result := True;
end;
end;
end;
Получается происходит добавление новой точки в фоновом режиме.
Но как предварительно указать тип рисунка метки и категорию куда будет добавляться метка без вызова формы добавления меток.
Может подскажите как предварительно указать тип рисунка метки и категорию куда будет добавляться метка!!! |
Additional Information | |
Tags | No tags attached. |
Relationships | duplicate of | 0001869 | resolved | zed | Обработка внешнего события в САСе с переходом к координатам на карте |
|
Attached Files | |
|
Issue History |
Date Modified | Username | Field | Change |
29-05-2014 04:39 | Waleryth | New Issue | |
29-05-2014 05:25 | vdemidov | Note Added: 0014275 | |
29-05-2014 06:02 | Waleryth | Note Added: 0014276 | |
29-05-2014 06:24 | vdemidov | Note Added: 0014277 | |
29-05-2014 08:25 | Waleryth | Note Added: 0014278 | |
29-05-2014 08:33 | vdemidov | Note Added: 0014279 | |
29-05-2014 09:08 | Waleryth | Note Added: 0014280 | |
29-05-2014 09:16 | Waleryth | Note Added: 0014281 | |
29-05-2014 09:19 | vdemidov | Note Added: 0014282 | |
29-05-2014 09:22 | vdemidov | Note Added: 0014283 | |
29-05-2014 09:24 | vdemidov | Note Edited: 0014283 | bug_revision_view_page.php?bugnote_id=14283#r6075 |
29-05-2014 09:41 | Waleryth | Note Added: 0014284 | |
29-05-2014 09:52 | vdemidov | Note Added: 0014285 | |
29-05-2014 10:47 | zed | Note Added: 0014287 | |
29-05-2014 11:13 | vdemidov | Note Added: 0014288 | |
01-06-2014 13:57 | zed | Note Added: 0014304 | |
02-06-2014 08:51 | vdemidov | Relationship added | duplicate of 0001869 |
02-06-2014 08:53 | vdemidov | Note Added: 0014306 | |
02-06-2014 08:56 | vdemidov | Status | new => resolved |
02-06-2014 08:56 | vdemidov | Resolution | open => duplicate |
02-06-2014 08:56 | vdemidov | Assigned To | => vdemidov |
02-06-2014 08:56 | vdemidov | Status | resolved => closed |
02-06-2014 09:04 | zed | Note Added: 0014308 | |
02-06-2014 09:09 | vdemidov | Note Added: 0014309 | |
Notes |
|
|
Одно непонятно, зачем для добавления точки в фоне, трогать функции которые называются *Modal, то есть выдает модальное окно? И зачем вообще тогда трогать класс, который отвечает за взаимодействие с пользователем, если нужно фоновое добавление? Нужно просто создавать метку и сохранять ее в базу. |
|
|
|
Извените за глупый вопрос! Это плучается достаточно сделать как описано здесь http://sasgis.org/wikisasiya/doku.php/отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных |
|
|
|
А это тут при чем? Там описано как поднять отдельный сервер с базой данных и HTTP-сервером, а САС будет просто для него клиентом. |
|
|
|
Может я чего-то не понимаю,если вы имеете ввиду http://sasgis.org/wikisasiya/doku.php/создание_меток - то это не то, меток может быть сотни а может и больше! Я бы хотел чтобы они добавлялись автоматом! И какую базу вы имели ввиду - marks.sml? |
|
|
|
Это вы определитесь, что вы хотете получить.
В статье http://sasgis.org/wikisasiya/doku.php/отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных
Идет речь об использовании отдельного сервера с Apach, PHP, MySQL.
В статье http://sasgis.org/wikisasiya/doku.php/создание_меток просто описывается ГУЙ пользователя.
А вы изначально спрашивали о работе с метками внутри программы. Определитесь что вас интересует. |
|
|
|
Извините за назойливость. Но попробую мою задумку более четко и подробно описать!
Дапустим имеется прибор для снятия спектра http://nikon-spectra.ru/products/gps/Epoch50/, оператор ходит по сетке и в заданой точке происходит снятие спектра. Точек может быть сотни и каждую вручную забивать как-то трудоемко. Одновременно со снятием спектра происходит запись движения (трека) оператора-пешехода (для этого идеальноподходит САС).
Так вот я хотел в сас реализоать такой механизм который бы автоматически записывал эти самые точки снятия спектра, при этом указывать некое описание точки (Description).
Точки(метки) я смог записать. Но как для этих меток указать категорию, и как указать тип рисунка метки (в зависимости от значения которые будут записаны в Description метки). |
|
|
|
Использование отдельного сервера с Apach, PHP, MySQL - не вариант. Я хочу это реализовать внутри программы только в автономном режиме. |
|
|
|
Просто создать точки с нужными параметрами. То есть вместо вызова Factory.CreateNewPoint вызывать у Factory.CreatePoint и передавать туда все что вам хочется. Добавлять методы в TMarksDbGUIHelper для этого не нужно. Он на то и GUIHelper что бы взаимодействовать с пользователем. |
|
|
(0014283)
|
vdemidov
|
29-05-2014 09:22
(edited on: 29-05-2014 09:24) |
|
> Использование отдельного сервера с Apach, PHP, MySQL - не вариант. Я хочу это реализовать внутри программы только в автономном режиме.
Ну это вы про него почему-то упомянули в своем комментарии http://sasgis.org/mantis/view.php?id=2440#c14276
Мне, кстати, этот костыль очень не нравится, еще и устарел слегка. Просто что бы реализовать альтернативу нужно достаточно много сил приложить, а у меня для этого ни сил ни желания нет.
|
|
|
|
Небольшое пожелание. Неплохо бы на мой взгляд реализовать возможность подключения какой-нибудь простой бд типа *.gdb или Access а потом просто с этой базой работать типа добавить допустим теже метки со всеми там описаниями, коорд, категориями и т.д. а к этой базе несоставит труда подключится любому и работать с ней. |
|
|
|
Этому пожеланию сто лет в обед. Реализуйте и сделайте пул-реквест после чего и поговорим. А вообще этот тикет нужно закрывать, а вопросы по исходному коду нужно задавать в соответствующей ветке форума. Закрывать как Wan't fix или Duplicate в зависимости от того чего вы таки хотите добиться, потому что я пока не совсем понял. То есть конченая цель понятна, но что от нас хотите получить мне пока не ясно. |
|
|
(0014287)
|
zed
|
29-05-2014 10:47
|
|
Я так понял, что товарищ вполне готов сам реализовать фичу добавления меток, его просто нужно подтолкнуть в правильном направлении чтобы потом все нароботки можно было принять через пулреквест. |
|
|
|
Ну, я не уверен, что это стоит принимать в основной код. А вот помочь реализовать и подтолкнуть в нужном направлении - всегда пожалуйста. Для этого раздел "Вопросы по исходному коду" и существует на форуме. |
|
|
(0014304)
|
zed
|
01-06-2014 13:57
|
|
> Ну, я не уверен, что это стоит принимать в основной код.
Почему? |
|
|
|
>Почему?
Потому что с большой вероятность это будет костыль для решения одной конкретной проблемы одного конкретного пользователя и бесполезный для 99% остальных пользователей. Как я себе это представляю я описал в хотелке 0001869 и своего мнения пока не изменил. |
|
|
(0014308)
|
zed
|
02-06-2014 09:04
|
|
Какой ещё костыль? Тут разговор за --insert-placemark в терминах твоего же описания 0001869:0010996 с единственным отличием, что скорее всего это будет не полная переделка существующего механизма, а лишь минимальное вмешательство в код, для добавления требуемого функционала. И оно будет полезно 100% пользователям, которые задумают управлять САСом извне. А то, что реализация функционала возможно не на 100% будет соответствовать твоим представлениям о том, как это должно быть, ещё не повод говорить о бесполезности фичи. |
|
|
|
Ну, посмотрим, я же сказал, что не уверен. Когда будет пул реквест там и обсудим. |
|