Помогите новичку разобраться с поиском

О.Спасибо огромное.Вроде попонятней стало)).
PS: вы когда поиск доделаете - киньте пожалуйста пример, если не сложно.

Поиск через nominatim сделал :slight_smile: Вот такой nominatim.js получился (чистый исходник).

Использовать примерно вот так: https://gist.github.com/666137 Там всё с комментариями, надеюсь понятно :slight_smile: Опции, которые можно указывать в init и/или в search, перечислены в самом начале файла nominatim.js.

Внешне все запросы к серверу спрятаны вот в такой ассинхронный цикл, как в примере выше (callback → next → callback → next … ) Но внутри он всё же делает запросы к серверу. Как без этого. :slight_smile: В каждом запросе получает не все результаты, а какую-то очередную часть. Размер части определяется параметром limit (по-умолчанию = 10).

Если, например, в первом запросе пришло 10 результатов, а нужно показать 15 (как в примере), то итератор, когда будет вызван iter.next() на 11-ый раз, скрыто запросит следующую партию и вызовет callback как-будто ничего не случилось :slight_smile: Заметно будет только по паузе между вызовами: быстро значит уже есть очередной результат, долго – подгружает.

А чтобы нельзя было войти в длинный цикл, если забыть поставить ограничение и всё время вызывать iter.next() из callback-а, то там есть параметр limit_total (по-умолчанию = 50). Т.е. после 50-го результата остальные подтягиваться не будут, и в callback придёт ‘null’, т.е конец поиска. Если limit_total поставить в 0, то скрипт может просто замучать сервер и IP будет забанен :slight_smile:

Сегодня уже наверное не успею интегрировать в свою карту и показать в дейстии, так что отпишусь отдельно, когда заработает :slight_smile:

Ух ты.Огромная работа проделана)).

Смысл моего проекта – сделать 99% работы по встраиванию openstreetmap + всего-всего-всего в сайт, чтобы можно было только сделать что-то вроде


<div id="osmbundle-map"></div>

<script type="text/javascript">
      OSMTownBundle.init({
         lat  : 5696268.96925,
         lon  : 4262883.58356,
         zoom : 16,
         ... other options ...
      });
</script>

и сразу заработает osm, google, openstreetbugs, поиск, рисовалка, и что там еще можно придумать :slight_smile:

Если это совпадает с твоей целью, то можем пилить вместе :slight_smile:

у меня цель просто сделать карту с поиском, добавлением маркеров из базы данных и отображением gps-треков.Да просто в универе дали задание, типа на курсовой, а я никогда раньше не встречался с этими картами.Поэтому все с нуля узнаю)).

А, курсовая, openlayers уже в обучении? Работу с маркерами видел в примерах. А вот треки не видел, интересно будет посмотреть :slight_smile:

Ну что добавили поиск на свою карту? Хочется посмотреть как все таки пользоваться поиском)).

Скорее всего на выходных :slight_smile: (можно на “ты”)

Ok)))

Жду с нетерпением.

osmisto что то давно тебя уже небыло.Не пропадай))).

У меня редко получается сесть попрограммировать не по работе :slight_smile: Зато вот что нашел: http://wiki.openstreetmap.org/wiki/Openlayers_Track_example

Это я тоже находил)).У меня основная проблема как раз с поиском.Все остальное вроде получается)).

ух чета давно никто сюда не заходил.Ну как там успехи osmisto?

апнуть тему чтоли…

Не надо :slight_smile: Она у меня в тудушнике :slight_smile:

ну клево)).

@osmisto
почему-то не ищет названия на отличном от English.

Nominatim.search(‘Москва’, showResult);

callback вызывается но data = null

Здрасте. А как там насчет функций рисования в удобной обёртке? Очень бы хотелось возможность строить маршруты и типа на сервер бросать его…

GaM, это тема про номинатим, а не про рисование маршрутов.

surge, кодировка точно utf8?

Я пробовал пользовать номинатим, правда через http запросы . Москава не находилась а вот транслитерированный на инглиш вариант - находился.