SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002440SAS.Планета[All Projects] Хотелкаpublic29-05-2014 04:3902-06-2014 09:09
ReporterWaleryth 
Assigned Tovdemidov 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionduplicate 
PlatformWindowsOS7OS VersionUltimate
Product Version 
Target VersionFixed in Version 
Summary0002440: Закидывание через неопределенное время метки из стороннего ПО, например, метки отбор проб.
DescriptionЯ тут поизучал темы на форуме и пришел к выводу что такая небольшая модификация придется по вкусу многим пользователя SAS.Планета. Необходимо чтобы происходила запись трека и одновременно в фоне происходило закидывание меток, например, отбор проб.
Steps To Reproduce1). С треком все понятно.(Для эмуляции трека использовал 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;

Получается происходит добавление новой точки в фоновом режиме.
Но как предварительно указать тип рисунка метки и категорию куда будет добавляться метка без вызова формы добавления меток.
Может подскажите как предварительно указать тип рисунка метки и категорию куда будет добавляться метка!!!
TagsNo tags attached.
Attached Files

- Relationships
duplicate of 0001869resolvedzed Обработка внешнего события в САСе с переходом к координатам на карте 

-  Notes
(0014275)
vdemidov (manager)
29-05-2014 05:25

Одно непонятно, зачем для добавления точки в фоне, трогать функции которые называются *Modal, то есть выдает модальное окно? И зачем вообще тогда трогать класс, который отвечает за взаимодействие с пользователем, если нужно фоновое добавление? Нужно просто создавать метку и сохранять ее в базу.
(0014276)
Waleryth (reporter)
29-05-2014 06:02

Извените за глупый вопрос! Это плучается достаточно сделать как описано здесь http://sasgis.org/wikisasiya/doku.php/отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных
(0014277)
vdemidov (manager)
29-05-2014 06:24

А это тут при чем? Там описано как поднять отдельный сервер с базой данных и HTTP-сервером, а САС будет просто для него клиентом.
(0014278)
Waleryth (reporter)
29-05-2014 08:25

Может я чего-то не понимаю,если вы имеете ввиду http://sasgis.org/wikisasiya/doku.php/создание_меток - то это не то, меток может быть сотни а может и больше! Я бы хотел чтобы они добавлялись автоматом! И какую базу вы имели ввиду - marks.sml?
(0014279)
vdemidov (manager)
29-05-2014 08:33

Это вы определитесь, что вы хотете получить.
В статье http://sasgis.org/wikisasiya/doku.php/отображение_на_карте_произвольной_информации_точек_картинок_и_т.п._из_базы_данных
Идет речь об использовании отдельного сервера с Apach, PHP, MySQL.

В статье http://sasgis.org/wikisasiya/doku.php/создание_меток просто описывается ГУЙ пользователя.

А вы изначально спрашивали о работе с метками внутри программы. Определитесь что вас интересует.
(0014280)
Waleryth (reporter)
29-05-2014 09:08

Извините за назойливость. Но попробую мою задумку более четко и подробно описать!
Дапустим имеется прибор для снятия спектра http://nikon-spectra.ru/products/gps/Epoch50/, оператор ходит по сетке и в заданой точке происходит снятие спектра. Точек может быть сотни и каждую вручную забивать как-то трудоемко. Одновременно со снятием спектра происходит запись движения (трека) оператора-пешехода (для этого идеальноподходит САС).
Так вот я хотел в сас реализоать такой механизм который бы автоматически записывал эти самые точки снятия спектра, при этом указывать некое описание точки (Description).
Точки(метки) я смог записать. Но как для этих меток указать категорию, и как указать тип рисунка метки (в зависимости от значения которые будут записаны в Description метки).
(0014281)
Waleryth (reporter)
29-05-2014 09:16

Использование отдельного сервера с Apach, PHP, MySQL - не вариант. Я хочу это реализовать внутри программы только в автономном режиме.
(0014282)
vdemidov (manager)
29-05-2014 09:19

Просто создать точки с нужными параметрами. То есть вместо вызова Factory.CreateNewPoint вызывать у Factory.CreatePoint и передавать туда все что вам хочется. Добавлять методы в TMarksDbGUIHelper для этого не нужно. Он на то и GUIHelper что бы взаимодействовать с пользователем.
(0014283)
vdemidov (manager)
29-05-2014 09:22
edited on: 29-05-2014 09:24

> Использование отдельного сервера с Apach, PHP, MySQL - не вариант. Я хочу это реализовать внутри программы только в автономном режиме.
Ну это вы про него почему-то упомянули в своем комментарии http://sasgis.org/mantis/view.php?id=2440#c14276
Мне, кстати, этот костыль очень не нравится, еще и устарел слегка. Просто что бы реализовать альтернативу нужно достаточно много сил приложить, а у меня для этого ни сил ни желания нет.

(0014284)
Waleryth (reporter)
29-05-2014 09:41

Небольшое пожелание. Неплохо бы на мой взгляд реализовать возможность подключения какой-нибудь простой бд типа *.gdb или Access а потом просто с этой базой работать типа добавить допустим теже метки со всеми там описаниями, коорд, категориями и т.д. а к этой базе несоставит труда подключится любому и работать с ней.
(0014285)
vdemidov (manager)
29-05-2014 09:52

Этому пожеланию сто лет в обед. Реализуйте и сделайте пул-реквест после чего и поговорим. А вообще этот тикет нужно закрывать, а вопросы по исходному коду нужно задавать в соответствующей ветке форума. Закрывать как Wan't fix или Duplicate в зависимости от того чего вы таки хотите добиться, потому что я пока не совсем понял. То есть конченая цель понятна, но что от нас хотите получить мне пока не ясно.
(0014287)
zed (manager)
29-05-2014 10:47

Я так понял, что товарищ вполне готов сам реализовать фичу добавления меток, его просто нужно подтолкнуть в правильном направлении чтобы потом все нароботки можно было принять через пулреквест.
(0014288)
vdemidov (manager)
29-05-2014 11:13

Ну, я не уверен, что это стоит принимать в основной код. А вот помочь реализовать и подтолкнуть в нужном направлении - всегда пожалуйста. Для этого раздел "Вопросы по исходному коду" и существует на форуме.
(0014304)
zed (manager)
01-06-2014 13:57

> Ну, я не уверен, что это стоит принимать в основной код.

Почему?
(0014306)
vdemidov (manager)
02-06-2014 08:53

>Почему?
Потому что с большой вероятность это будет костыль для решения одной конкретной проблемы одного конкретного пользователя и бесполезный для 99% остальных пользователей. Как я себе это представляю я описал в хотелке 0001869 и своего мнения пока не изменил.
(0014308)
zed (manager)
02-06-2014 09:04

Какой ещё костыль? Тут разговор за --insert-placemark в терминах твоего же описания 0001869:0010996 с единственным отличием, что скорее всего это будет не полная переделка существующего механизма, а лишь минимальное вмешательство в код, для добавления требуемого функционала. И оно будет полезно 100% пользователям, которые задумают управлять САСом извне. А то, что реализация функционала возможно не на 100% будет соответствовать твоим представлениям о том, как это должно быть, ещё не повод говорить о бесполезности фичи.
(0014309)
vdemidov (manager)
02-06-2014 09:09

Ну, посмотрим, я же сказал, что не уверен. Когда будет пул реквест там и обсудим.

- Users who viewed this issue
User List Anonymous (2490x), vdemidov (1x), hrucker (2x), DimaDD (1x)
Total Views 2494
Last View 28-03-2024 14:00

- 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 View Revisions
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



Copyright © 2007 - 2024 SAS.Planet Team