Умные способы определить, является ли поисковый запрос адресом или бизнесом для использования в Google APIS? - PullRequest
2 голосов
/ 06 января 2010

Вот в чем проблема, у меня есть приложение с панелью поиска, пользователь может ввести что-то вроде «18th Street» или «Starbucks», и оно использует API геокодирования и локального поиска Google соответственно для получения результатов.

Мне интересно, есть ли умный способ определить, является ли данная входная строка адресом, который должен быть геокодирован, или именем компании, для которого требуется локальный поиск.

Очевидно, я мог бы попытаться что-то сделать, но мне интересно, кто-то уже сделал это или Google сам предоставляет такую ​​функциональность.

Приветствие.

Ответы [ 2 ]

2 голосов
/ 06 января 2010

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

Это достаточно разумно, чтобы соответствовать чему-то, что будет достаточно согласованным по формату, как полностью определенный адрес улицы, но когда это что-то вроде "18-й улицы", откуда вы знаете, что они на самом деле не хотят ресторан под названием "18-я улица" «? То, что вы могли бы рассмотреть, является регулярным выражением, которое свободно пытается сопоставить адрес улицы и, если оно находит, вызывает геокодирование. Если геокодирование не возвращает никаких результатов, по умолчанию используется локальный поиск.

1 голос
/ 06 января 2010

Оказывается, локальный поиск по умолчанию делает это и обрабатывает геокоды и бизнес-поиск. В этом есть некоторая грубость, но я думаю, что этого следовало ожидать

Вы можете изменить это поведение, указав

MRT? Этот необязательный аргумент указывает, какой тип списка Пользователь заинтересован в. Допустимые значения включают в себя:

* blended - request KML, Local Business Listings, and Geocode results
* kmlonly - request KML and Geocode results
* localonly - request Local Business Listings and Geocode results
...