Клуб API Карт

Ссылка на википедию в балуне

BranKaz
19 мая 2011, 15:08

Добрый день. Подскажите пожалуйста. Имеется точка с заданными координатами, с помощью обратного геокодирования я получаю текст

YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {

var NAME = this.get(0).text;

}

Пусть точка находится в Тихом океане. Если я просматриваю  значение переменной NAME так:

alert(""+NAME); то получаю ответ "океан Тихий"

Если я делаю ссылку на Википедию, таким образом:

var ssyl=('<a href=http://ru.wikipedia.org/wiki/search'+NAME+' target="_blank">Подробнее</a>');

то Википедия ищет только слово "океан"

Как заставить её искать текст целиком?

7 комментариев
Подписаться на комментарии к посту

NAME надо урлкодировать

В имени пробел из-за этого и возникает такая проблема.

Пробелы и другие служебные символы надо кодировать.

Как сделать это в JavaScript с ходу не скажу - поищите по ключевым словам: JavaScript url encode

Большое спасибо за ответы.Вот так все заработало:

var ssyl=('http://ru.wikipedia.org/wiki/search'+encodeURIComponent(NAME)+' target="_blank">Подробнее');

Однако выяснилось при поиске в википедии важен порядок слов, так "океан Тихий" она не находит, а Тихий океан - пожалуйста. Отсюда возникает вопрос, можно ли как-нибудь разобрать текст на слова и собрать обратно в нужном порядке?

Да, но у вас запрос выглядит как:

http://ru.wikipedia.org/w/index.php?search=океан+тихий,

А мой урлкодированный запрос имеет вид

http://ru.wikipedia.org/w/index.php?search=океан_Тихий,

Есть ли возможность его как-то изменить?

Кроме того я пытаюсь добиться чтобы Википедия сразу выдавала нужную страницу, а по запросу "океан+тихий" выдается страница с вариантами.

Может все-таки есть способ разделить текст полного адреса полученный из геокодера на отдельные слова?

 

Может все-таки есть способ разделить текст полного адреса полученный из геокодера на отдельные слова?

 

 

в ответе геокодера есть структурированная информация об адресе

AddressDetails из нее можно попробовать сформировать нужную вам строку