2009-10-22 5 views
3

현재 Google의 AJAX API에서 머리카락을 잃어 가고 있습니다. 내가하는 일은 구조화 된 위치 데이터를 Google 로컬 검색 API 쿼리로 변환하여 사용자에게 장소의 대체 결과 목록을 제공하는 것입니다.Google 위치 API와지도 : 동일한 검색어가 다른 결과를 산출하는 이유는 무엇입니까?

예 :

http://ajax.googleapis.com/ajax/services/search/local?v=1.0&key=XXX&hl=en_US&mrt=localonly&rsz=large&q=pizza+Neustadt+DE 

그러나, API가 자주 그것에 통과 계정 특정 매개 변수를 고려하지 않는 시간에 아주 이상한 동작합니다. 예를 들면 다음과 같습니다.

Google지도에서 "term Rome Roma IT"를 검색하면 예상대로 로마에 이라는 용어가 모두 있습니다. API에 대해 동일한 검색을 반복하면 결과가 0이됩니다 (로마를 행정 구역으로, 로마를 도시 이름으로 사용하려면 '로마'또는 '로마'를 모두 제거해야합니다).

왜 그럴까요?

또 다른 예입니다. 독일에는 Neustadt라고 불리는 20 개의 다른 도시, 도시 및 자치구가 있습니다. 이제 Google지도에서 검색 할 때 지역이나 다른 것과 같은 추가 한정자를 지정하지 않으면 오직 하나만 찾습니다.

API 수준에서 나는 Neustadt에 대한 쿼리와 함께 lat/lon 매개 변수를 전달할 때 지오 코딩을 살펴보고 올바른 Neustadt를 선택하기에 충분히 영리 할 것이라고 예상했습니다. 그러나 그런 일은 일어나지 않습니다. 항상 같은 Neustadt를 선택하고 지리 정보를 무시합니다.

q=pizza+Neustadt+DE&sll=48.8053,11.7579 

경계 상자 검색을 수행 할 때 비슷한 문제가있었습니다. 경계 상자는 내가 아직 결과 데이터를 얻고 있기 때문에 백 오프 킬로미터 완전히 무시하는 것 같다

q=pizza+Neustadt+DE&sll=48.8053,11.7579&sspn=0.00001,0.00001 

마지막 결과는 심지어 같은 도시에없는; 작은 경계 상자가 어떤 데이터도 가져 오지 않아야합니까? 나는 심지어 0 사이즈의 BBox를 통과 할 수 있었고 여전히 결과를 얻을 수있었습니다.

실제로 로컬 검색 API에 대한 상당히 광범위한 문서가 있지만 쿼리 구성 및 평가 방법을 사용할 때 사용되는 매개 변수에 대해서는 자세히 설명하지 않으므로 괜찮은 결과를 얻기가 매우 어렵습니다. 결과.

Google 로컬 검색을 사용하는 방법에 대한 힌트, 팁, 제안 사항이 있습니까?

업데이트 : 나는 정말 이상한 것을 발견했습니다. 이 검색 쿼리에 입력 할 때

http://code.google.com/apis/ajaxsearch/documentation/localsearch/index.html

열고 불을 지르고, 및 HTTP 트래픽을 모니터링 : 누군가가이 웹 사이트를 방문하십시오 수

test Rome Roma IT 

당신은지도에 결과의 무리를 얻을 것이다.

curl "http://www.google.com/uds/GlocalSearch?key=internal-sample&v=1.0&rsz=large&sll=41.97684819454683%2C12.486648559570312&sspn=0.204185%2C0.549316&q=test%20Rome%20Roma%20IT&lssrc=lsc&lscstyle=final&start=0&callback=_callbacks_._5g139yfuc" 

지금 내가 ZERO 결과를 얻을 : 이제 명령 행에 AJAX를 통해 연락을하고 여기에 요청을 전송 한 URL을 복사합니다. 그게 어떻게 가능할까요? 분명히 핵심 또는 콜백 args 아니에요, 나는 그 쿼리의 결과에 아무런 변화없이 그들을 제거했습니다.

검색어가 서버 중 하나에서 나온 경우 Google에서 검색 결과를 확장합니까?

답변

2

정확하게 똑같은 문제가 발생했습니다. 라이센스 문제와 Google이 API를 통해 공개하는 정보와 Maps/Google 검색 페이지에 표시되는 정보가 서로 다른 조합입니다.

라이선스 문제로, API 호출을 통한 요청과 비교하여 사용자가 브라우저를 통해 방문한 경우 번 더 많은 정보가 표시 될 수 있습니다. 이론적으로는 자동화 됨).

예를 들어 here을 참조하십시오.

+0

포인터 주셔서 감사합니다. 무시 무시한 bbox 매개 변수에 대한 아이디어? – Matthias

+0

나는 sll 매개 변수 또는 주소 요소를 "q"용어의 일부로 제공했지만 함께 사용할 수는 없습니다. – davek

+0

또 다른 이상한 관찰로 내 질문을 업데이트했습니다. 그걸 확인할 수 있니? 데이브 감사합니다. – Matthias