Notes |
|
(0007278)
|
vasketsov
|
01-06-2012 17:34
(edited on: 01-06-2012 17:45) |
|
Или сохранять локально запросы и ответы на них.
Короче говоря, кэшировать поиск.
О чём уже давно писали большевики, ещё на заре поиска )))
Или имеется в виду поиск по меткам в программе?
|
|
|
(0007281)
|
gpsMax
|
02-06-2012 09:09
|
|
Судя по всему, имеется в виду кэширование разных географических объектов. Очень круто, только слабо представляю, как это должно работать-то вообще. А уж с опережающим кэшированием совсем непонятно. Разве что базу осмопоиска выкачивать целиком. |
|
|
|
Имеется тупой офлайновый поиск по какой-нибудь локальной базе, например, с названиями и координатами населенных пунктов. По примеру как это сделано в OziExplorer. |
|
|
(0007314)
|
Garl
|
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
|
05-06-2012 17:58
|
|
промежуточные итоги:
имею
userdata\mp\*.mp
4 .mp файла на 138 мeгабайт общего веса
поиск по слову "красная" (слово ходовое) выдал 151 результат (это уже после отброса совпадений)
но! поиск на ноуте длился 5 минут 25 секунд.
в то же время поиск по слову "спартак" выдал 10 результатов за 20 секунд
тут нужно ещё учитывать специфику польского формата в том что одна улица может быть нарисована разными линиями и соответственно на её фильтрацию тратится время...
нужен ли нам адресный поиск типа: село Кукуево улица Мира или "Кукуево Мира 15" ? или пока и так сойдёт ? |
|
|
(0007324)
|
Garl
|
06-06-2012 14:33
|
|
прилепил сегодня поиск по нескольким словам
и если по файлам 5-8 мб город улца дом ущутся на ура, то в файле весом 156мб оно ковыряется уже 15 минут ...
оно нам надо?
с другой стороны полной адресации типа город\улица\дом + координаты больше нигде не достать... |
|
|
(0007325)
|
zed
|
06-06-2012 16:30
(edited on: 06-06-2012 16:34) |
|
>в файле весом 156мб оно ковыряется уже 15 минут
Как вариант: заранее конвертиовать *.mp в SQLite и выполнять поиск уже средствами БД. Должно быть на порядок-два быстрее. А так, в лоб, да - медленно и малопригодно.
Т.е. делается некая отдельная утилита по конвертации различных форматов в единообразный SQLite, а в САСе уже прикручивается поиск по этой БД.
|
|
|
|
Не. 15 минут никуда не годится. Значит нужна предобработка данных. |
|
|
(0007327)
|
Garl
|
06-06-2012 18:27
(edited on: 06-06-2012 18:28) |
|
как вариант забить на адресный поиск и искать только
города\улицы\POI без подробностей и адресов тупо перебором в лоб.
тогда будет быстрее и предобработка будет не нужна.
з.ы. ждал 25 минут потом задачу снял...
|
|
|
(0007328)
|
zed
|
07-06-2012 08:16
|
|
>тогда будет быстрее и предобработка будет не нужна.
Ага, вместо 25 минут будет 5. Да, быстрее, но проблемы-то это не решает. Любой поиск, занимающий больше пары секунд - мучение для юзера.
Имхо, смотри в сторону SQLite. |
|
|
(0007329)
|
Garl
|
07-06-2012 08:19
|
|
если делать "ленивый" поиск только по названию - он думаю уложится в секунды.
да что тут рассуждать. к вечеру переделаю и на живом примере проверю. |
|
|
(0007330)
|
zed
|
07-06-2012 08:25
|
|
>он думаю уложится в секунды
Это на тестовом размере данных. А если этих данных будет раза в 2 больше. Или в 4? |
|
|
(0007331)
|
Garl
|
07-06-2012 08:29
|
|
тогда надо делать "своё" offline-хранилище и импорт данных в него из произвольных форматов.
мне такое "скил" не позволяет реализовать :)
да и хочется как проще для юзера: накидал файлов - получил результат... |
|
|
(0007332)
|
zed
|
07-06-2012 08:49
|
|
>тогда надо делать "своё" offline-хранилище и импорт данных в него из произвольных форматов
Я понимаю, что задача может показаться неподъёмной, но смотри:
1. Делаешь конвертер *.mp -> SQLite (для начала можно ограничиться одним mp форматом, далее, по аналогии можно накидать сколь угодно много дополнительных)
2. делаешь геокодер в САСе по подобию существующих, который умеет искать в SQLite из п.1
3. тестируешь/доводишь конвертер до ума, добавляя все необходимые форматы и фичи
4. интегрируешь свой конвертер в САС. Т.е. где-то в интерфейме САСа добавляешь кнопочку "Импортировать POI" и вставляешь туда весь свой код, который раньше работал в конвертере. (Главное, чтобы у твоего конвертера наружу смотрел некий класс, которому на вход можно подавать тот или иной файл, а на выходе он отдаст БД, тогда интеграция его в САС должна пройти достаточно гладко.)
Таким образом, тебе нужно поднять свой "скил" до уровня "разобраться как работать с SQLite" - и пункты 1-3 ты реализуешь на ура.
Естественно, что это долгоиграющая хотелка и делается это не за один вечер. |
|
|
(0007333)
|
zed
|
07-06-2012 08:58
|
|
>да и хочется как проще для юзера: накидал файлов - получил результат...
Лучше один раз подождать, пока данные импортируются в БД, но получить быстрый поиск, чем получить "простой" импорт, но ловить лаги при каждом(!) поисковом запросе. |
|
|
(0007334)
|
Garl
|
07-06-2012 09:05
|
|
хранить такую базу где? ( всмысле путь )
нужен ли поиск страна\область\город\улица\дом ?
если есть полигон. как его лучше находить\отдавать ? полигоном или точкой?
и вообще очень много вопросов...
чистка базы?
улицы разбитые на много частей?
а как я захочу найти все улицы ленина по всей базе! так САС только выводить их в список будет минут несколько...
и вообще : что то мне оно сильно напоминает работу с метками. |
|
|
(0007345)
|
Tolik
|
07-06-2012 12:59
|
|
Ну а если сильно упростить - искать только город? Или (2) город+улицу? Сколько займёт времени и какого размера будет база? |
|
|
(0007347)
|
Garl
|
07-06-2012 13:07
|
|
база населённых пунктов по России http://download.geonames.org/export/dump/RU.zip
44Mb в распакованном виде
по ней будет искаться за секундУ, но там нет улиц. только города\посёлки и координаты. |
|
|
(0007349)
|
zed
|
07-06-2012 13:27
|
|
А если по всему миру? http://download.geonames.org/export/dump/allCountries.zip |
|
|
(0007350)
|
Garl
|
07-06-2012 13:35
|
|
работу с SQLite можно подсмотреть в u_ThreadExportIPhone.pas ?
или брать другую компоненту? |
|
|
(0007351)
|
zed
|
07-06-2012 13:43
|
|
Можно подсмотреть. Но я там делал практически на чистом API, из-за отсутствия поддержки blob полей во враппере. Т.е. можно ещё сильнее облегчить жизнь, используя класс TalSqlite3Client (см. демку в alcinoe\demo\ALSqlite3ClientDemo). |
|
|
(0007359)
|
Garl
|
08-06-2012 16:20
|
|
я всё ещё про старое:
3 файла общим весом 177 Мб
переделал по ленивому: тупо ищем совпадения в названии и всё!
если название редкое - ищется 5-7 секунд (даже на моём тормозе)
если название распространённое (красная) то:
ищется 50 секунд
а выводит результаты в окошко 2 минуты 30 секунд!!!
в таком виде внедряем? |
|
|
(0007360)
|
Garl
|
08-06-2012 16:39
|
|
если перед очисткой спрятать панельку, а после вывода в неё результатов - показать, то:
2 с половиной минуты ждать ненужно, но форматирование результатов по высоте в панельке пропадает насовсем :( |
|
|
(0007362)
|
zed
|
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
|
09-06-2012 02:51
|
|
так не сравнивай базу в .txt и базу в .mp
я поиск по RU.txt так же с результатом близким к geoknife забаццаю...(что там искать по тексту то)
Только это отдельный гео-кодер будет и там "эталонные" базы , а здесь пользовательские, в которых больше вкусностей... |
|
|
(0007365)
|
Garl
|
09-06-2012 04:11
|
|
вот щас приделал поиск по этой базе. без конвертации в UNICODE!!!
так вот слово красный ищется 10 секунд + 5 секунд на открытие файла.
но дождаться вывода 1155 результатов в окошко поиска я так и не смог!!!
может рубить на 50..100 ??? |
|
|
(0007367)
|
zed
|
09-06-2012 07:41
|
|
Слишком тормозной поиск у тебя получается. С другой стороны, с файлом allCountries.zip (960Мб в распакованном виде) даже этот GeoKnife не справился - вылетел с out of memory, что как бы намекает. |
|
|
(0007369)
|
Garl
|
09-06-2012 09:39
|
|
залил к себе в репо.
если есть желание - можно протетстить и вынести вердикт. |
|
|
(0007596)
|
Tolik
|
22-06-2012 18:41
|
|
А чем кончилось-то? Ищет, что ли? А БД где взять? |
|
|
(0007597)
|
Garl
|
22-06-2012 18:52
|
|
http://sasgis.org/wikisasiya/doku.php/поиск_по_локальной_базе_geonames |
|