SASGIS

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


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001320SAS.Планета[All Projects] Хотелкаpublic01-06-2012 12:2210-10-2012 11:46
ReporterGarl 
Assigned ToGarl 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionfixed 
PlatformOSOS Version
Product Version110418 
Target Version120808Fixed in Version120808 
Summary0001320: Хочется иметь полностью офлайновый поиск
DescriptionСобственно для этого нужно иметь базу с метками и координатами
Tagsпоиск
Attached Filespng file icon Image.png [^] (32,768 bytes) 08-06-2012 19:12

- Relationships
related to 0001539resolvedDima2000 Улучшение офлайн поиска по файлам *.mp 

-  Notes
(0007278)
vasketsov (manager)
01-06-2012 17:34
edited on: 01-06-2012 17:45

Или сохранять локально запросы и ответы на них.
Короче говоря, кэшировать поиск.
О чём уже давно писали большевики, ещё на заре поиска )))

Или имеется в виду поиск по меткам в программе?

(0007281)
gpsMax (manager)
02-06-2012 09:09

Судя по всему, имеется в виду кэширование разных географических объектов. Очень круто, только слабо представляю, как это должно работать-то вообще. А уж с опережающим кэшированием совсем непонятно. Разве что базу осмопоиска выкачивать целиком.
(0007313)
vdemidov (manager)
04-06-2012 15:05

Имеется тупой офлайновый поиск по какой-нибудь локальной базе, например, с названиями и координатами населенных пунктов. По примеру как это сделано в OziExplorer.
(0007314)
Garl (manager)
04-06-2012 15:14

ну вариантов ровно несколько:
http://earth-info.nga.mil/gns/html/cntry_files.html
http://download.geonames.org/export/dump/

как вариант ещё искать в
*.mp полькие карты
*.wpt точки озика
*.kml треки и точки GoogkeEarth
*.gpx просто треки и точки
(0007319)
Garl (manager)
05-06-2012 17:58

промежуточные итоги:
имею
userdata\mp\*.mp
4 .mp файла на 138 мeгабайт общего веса
поиск по слову "красная" (слово ходовое) выдал 151 результат (это уже после отброса совпадений)
но! поиск на ноуте длился 5 минут 25 секунд.

в то же время поиск по слову "спартак" выдал 10 результатов за 20 секунд

тут нужно ещё учитывать специфику польского формата в том что одна улица может быть нарисована разными линиями и соответственно на её фильтрацию тратится время...

нужен ли нам адресный поиск типа: село Кукуево улица Мира или "Кукуево Мира 15" ? или пока и так сойдёт ?
(0007324)
Garl (manager)
06-06-2012 14:33

прилепил сегодня поиск по нескольким словам
и если по файлам 5-8 мб город улца дом ущутся на ура, то в файле весом 156мб оно ковыряется уже 15 минут ...
оно нам надо?
с другой стороны полной адресации типа город\улица\дом + координаты больше нигде не достать...
(0007325)
zed (manager)
06-06-2012 16:30
edited on: 06-06-2012 16:34

>в файле весом 156мб оно ковыряется уже 15 минут
Как вариант: заранее конвертиовать *.mp в SQLite и выполнять поиск уже средствами БД. Должно быть на порядок-два быстрее. А так, в лоб, да - медленно и малопригодно.

Т.е. делается некая отдельная утилита по конвертации различных форматов в единообразный SQLite, а в САСе уже прикручивается поиск по этой БД.

(0007326)
vdemidov (manager)
06-06-2012 18:24

Не. 15 минут никуда не годится. Значит нужна предобработка данных.
(0007327)
Garl (manager)
06-06-2012 18:27
edited on: 06-06-2012 18:28

как вариант забить на адресный поиск и искать только
города\улицы\POI без подробностей и адресов тупо перебором в лоб.
тогда будет быстрее и предобработка будет не нужна.
з.ы. ждал 25 минут потом задачу снял...

(0007328)
zed (manager)
07-06-2012 08:16

>тогда будет быстрее и предобработка будет не нужна.
Ага, вместо 25 минут будет 5. Да, быстрее, но проблемы-то это не решает. Любой поиск, занимающий больше пары секунд - мучение для юзера.

Имхо, смотри в сторону SQLite.
(0007329)
Garl (manager)
07-06-2012 08:19

если делать "ленивый" поиск только по названию - он думаю уложится в секунды.
да что тут рассуждать. к вечеру переделаю и на живом примере проверю.
(0007330)
zed (manager)
07-06-2012 08:25

>он думаю уложится в секунды
Это на тестовом размере данных. А если этих данных будет раза в 2 больше. Или в 4?
(0007331)
Garl (manager)
07-06-2012 08:29

тогда надо делать "своё" offline-хранилище и импорт данных в него из произвольных форматов.
мне такое "скил" не позволяет реализовать :)
да и хочется как проще для юзера: накидал файлов - получил результат...
(0007332)
zed (manager)
07-06-2012 08:49

>тогда надо делать "своё" offline-хранилище и импорт данных в него из произвольных форматов
Я понимаю, что задача может показаться неподъёмной, но смотри:
1. Делаешь конвертер *.mp -> SQLite (для начала можно ограничиться одним mp форматом, далее, по аналогии можно накидать сколь угодно много дополнительных)
2. делаешь геокодер в САСе по подобию существующих, который умеет искать в SQLite из п.1
3. тестируешь/доводишь конвертер до ума, добавляя все необходимые форматы и фичи
4. интегрируешь свой конвертер в САС. Т.е. где-то в интерфейме САСа добавляешь кнопочку "Импортировать POI" и вставляешь туда весь свой код, который раньше работал в конвертере. (Главное, чтобы у твоего конвертера наружу смотрел некий класс, которому на вход можно подавать тот или иной файл, а на выходе он отдаст БД, тогда интеграция его в САС должна пройти достаточно гладко.)

Таким образом, тебе нужно поднять свой "скил" до уровня "разобраться как работать с SQLite" - и пункты 1-3 ты реализуешь на ура.

Естественно, что это долгоиграющая хотелка и делается это не за один вечер.
(0007333)
zed (manager)
07-06-2012 08:58

>да и хочется как проще для юзера: накидал файлов - получил результат...
Лучше один раз подождать, пока данные импортируются в БД, но получить быстрый поиск, чем получить "простой" импорт, но ловить лаги при каждом(!) поисковом запросе.
(0007334)
Garl (manager)
07-06-2012 09:05

хранить такую базу где? ( всмысле путь )
нужен ли поиск страна\область\город\улица\дом ?
если есть полигон. как его лучше находить\отдавать ? полигоном или точкой?
и вообще очень много вопросов...
чистка базы?
улицы разбитые на много частей?

а как я захочу найти все улицы ленина по всей базе! так САС только выводить их в список будет минут несколько...

и вообще : что то мне оно сильно напоминает работу с метками.
(0007345)
Tolik (manager)
07-06-2012 12:59

Ну а если сильно упростить - искать только город? Или (2) город+улицу? Сколько займёт времени и какого размера будет база?
(0007347)
Garl (manager)
07-06-2012 13:07

база населённых пунктов по России http://download.geonames.org/export/dump/RU.zip
44Mb в распакованном виде
по ней будет искаться за секундУ, но там нет улиц. только города\посёлки и координаты.
(0007349)
zed (manager)
07-06-2012 13:27

А если по всему миру? http://download.geonames.org/export/dump/allCountries.zip
(0007350)
Garl (manager)
07-06-2012 13:35

работу с SQLite можно подсмотреть в u_ThreadExportIPhone.pas ?
или брать другую компоненту?
(0007351)
zed (manager)
07-06-2012 13:43

Можно подсмотреть. Но я там делал практически на чистом API, из-за отсутствия поддержки blob полей во враппере. Т.е. можно ещё сильнее облегчить жизнь, используя класс TalSqlite3Client (см. демку в alcinoe\demo\ALSqlite3ClientDemo).
(0007359)
Garl (manager)
08-06-2012 16:20

я всё ещё про старое:
3 файла общим весом 177 Мб
переделал по ленивому: тупо ищем совпадения в названии и всё!
если название редкое - ищется 5-7 секунд (даже на моём тормозе)
если название распространённое (красная) то:
ищется 50 секунд
а выводит результаты в окошко 2 минуты 30 секунд!!!

в таком виде внедряем?
(0007360)
Garl (manager)
08-06-2012 16:39

если перед очисткой спрятать панельку, а после вывода в неё результатов - показать, то:
2 с половиной минуты ждать ненужно, но форматирование результатов по высоте в панельке пропадает насовсем :(
(0007362)
zed (manager)
08-06-2012 19:11
edited on: 08-06-2012 19:30

Сравни свои результаты с прожкой http://www.burekbrigada.com/geoknife.html
У меня она загружает файл RU.txt за 0,7 сек (при этом, файл в UTF-8), а слово Красный находит практически мгновенно (и выводит тысячу с лишним строчек с результатом).

Кстати, можешь попробовать постучаться к этому челу, может его заинтересует эта хотелка и поможет чем: "You can reach me via [email protected]. You can write in Russian, English or Serbian but I can reply only in English or Serbian."

(0007363)
Garl (manager)
09-06-2012 02:51

так не сравнивай базу в .txt и базу в .mp
я поиск по RU.txt так же с результатом близким к geoknife забаццаю...(что там искать по тексту то)
Только это отдельный гео-кодер будет и там "эталонные" базы , а здесь пользовательские, в которых больше вкусностей...
(0007365)
Garl (manager)
09-06-2012 04:11

вот щас приделал поиск по этой базе. без конвертации в UNICODE!!!
так вот слово красный ищется 10 секунд + 5 секунд на открытие файла.
но дождаться вывода 1155 результатов в окошко поиска я так и не смог!!!

может рубить на 50..100 ???
(0007367)
zed (manager)
09-06-2012 07:41

Слишком тормозной поиск у тебя получается. С другой стороны, с файлом allCountries.zip (960Мб в распакованном виде) даже этот GeoKnife не справился - вылетел с out of memory, что как бы намекает.
(0007369)
Garl (manager)
09-06-2012 09:39

залил к себе в репо.
если есть желание - можно протетстить и вынести вердикт.
(0007596)
Tolik (manager)
22-06-2012 18:41

А чем кончилось-то? Ищет, что ли? А БД где взять?
(0007597)
Garl (manager)
22-06-2012 18:52

http://sasgis.org/wikisasiya/doku.php/поиск_по_локальной_базе_geonames

- Users who viewed this issue
User List Anonymous (3145x)
Total Views 3145
Last View 26-04-2024 00:15

- Issue History
Date Modified Username Field Change
01-06-2012 12:22 Garl New Issue
01-06-2012 12:22 Garl Status new => assigned
01-06-2012 12:22 Garl Assigned To => Garl
01-06-2012 12:23 Garl Tag Attached: поиск
01-06-2012 17:34 vasketsov Note Added: 0007278
01-06-2012 17:45 vasketsov Note Edited: 0007278 View Revisions
02-06-2012 09:09 gpsMax Note Added: 0007281
04-06-2012 15:05 vdemidov Note Added: 0007313
04-06-2012 15:14 Garl Note Added: 0007314
05-06-2012 15:08 vdemidov Product Version .Nightly => 110418
05-06-2012 15:08 vdemidov Target Version => 24xxxx
05-06-2012 17:58 Garl Note Added: 0007319
06-06-2012 14:33 Garl Note Added: 0007324
06-06-2012 16:30 zed Note Added: 0007325
06-06-2012 16:34 zed Note Edited: 0007325 View Revisions
06-06-2012 18:24 vdemidov Note Added: 0007326
06-06-2012 18:27 Garl Note Added: 0007327
06-06-2012 18:28 Garl Note Edited: 0007327 View Revisions
07-06-2012 08:16 zed Note Added: 0007328
07-06-2012 08:19 Garl Note Added: 0007329
07-06-2012 08:25 zed Note Added: 0007330
07-06-2012 08:29 Garl Note Added: 0007331
07-06-2012 08:49 zed Note Added: 0007332
07-06-2012 08:58 zed Note Added: 0007333
07-06-2012 09:05 Garl Note Added: 0007334
07-06-2012 12:59 Tolik Note Added: 0007345
07-06-2012 13:07 Garl Note Added: 0007347
07-06-2012 13:27 zed Note Added: 0007349
07-06-2012 13:35 Garl Note Added: 0007350
07-06-2012 13:43 zed Note Added: 0007351
08-06-2012 16:20 Garl Note Added: 0007359
08-06-2012 16:39 Garl Note Added: 0007360
08-06-2012 19:11 zed Note Added: 0007362
08-06-2012 19:12 zed File Added: Image.png
08-06-2012 19:30 zed Note Edited: 0007362 View Revisions
09-06-2012 02:51 Garl Note Added: 0007363
09-06-2012 04:11 Garl Note Added: 0007365
09-06-2012 07:41 zed Note Added: 0007367
09-06-2012 09:39 Garl Note Added: 0007369
22-06-2012 15:22 vdemidov Status assigned => resolved
22-06-2012 15:22 vdemidov Fixed in Version => 120808
22-06-2012 15:22 vdemidov Resolution open => fixed
22-06-2012 15:22 vdemidov Target Version 24xxxx => 120808
22-06-2012 18:41 Tolik Note Added: 0007596
22-06-2012 18:52 Garl Note Added: 0007597
03-09-2012 16:18 Dima2000 Relationship added related to 0001539
10-10-2012 11:46 Tolik Status resolved => closed



Copyright © 2007 - 2024 SAS.Planet Team