2012-12-21 2 views
5

나는 사용자가 입력 한 주소를 기반으로 빙빙 주소 제안을 반환하는이 기능을 가지고 있습니다. 나는 이미이라는 userLocation을 지정하고 있습니다. 그러나 결과는 예상보다 정확하지 않습니다. 내가 여기서해야 할 여분이 있니? 내가해야 할 경우 수동으로 주 또는 우편 번호를 지정할 수 있지만 사후 처리를 피하는 편이 낫습니다.자동 완성을 위해 사용자 위치별로 Bing 위치 API 결과를 필터링하려면 어떻게해야합니까?

예를 들어 111을 입력하면 111, NY, 111 스웨덴, 111 덴마크의 결과가 반환됩니다. 나는 이것을 적어도 미국에만 국한시키고 싶고, 실제로는 하드 코딩 할 수있는 몇 안되는 주 안에서만하고 싶다. 데이터에서 postalCode에 대한 옵션을 수동으로 지정하면 쿼리에서 사용한 내용을 무시합니다.

var geolocate = function(options) { 
    $.ajax({ 
     url: "http://dev.virtualearth.net/REST/v1/Locations", 
     dataType: "jsonp", 
     data: { 
      key: "KEY", 
      q: options.address, 
      userLocation: options.latitude + ',' + options.longitude, 
      maxResults: options.maxResults, 
     }, 
     jsonp: "jsonp", 
     success: function(data) { 
      if (options.success instanceof Function) { 
       options.success(data); 
      } 
     }, 
     error: function(xhr, status, text) { 
      alert('ERROR:\n'); 
     } 
    }); 
}; 

답변

1

, 이것은 실제로, 나는 하나의 PARAM, Q로 주소를 지정했지만, 내가 userLocation와 함께 addressLine을 지정하는 경우 (테스트는 달리 증명하지 않는 한) 내가 의도 그것을 할 것입니다 결과를 예상대로 필터링합니다.

var geolocate = function(options) { 
    $.ajax({ 
     url: "http://dev.virtualearth.net/REST/v1/Locations", 
     dataType: "jsonp", 
     data: { 
      key: "KEY", 
      addressLine: options.address, 
      countryRegion: 'US', 
      userLocation: options.latitude + ',' + options.longitude, 
      maxResults: options.maxResults, 
     }, 
     jsonp: "jsonp", 
     success: function(data) { 
      if (options.success instanceof Function) { 
       options.success(data); 
      } 
     }, 
     error: function(xhr, status, text) { 
      alert('ERROR:\n\n'); 
     } 
    }); 
}; 
0

내가 얼마 전에했던 일부 땜질 넘어 빙지도 API에 익숙하지 않아요 ...하지만 당신이 IP를 통과 또는 지역을 포함하여 시도? 도시 이름을 얻기 위해 사용자 위도/경도를 역순으로 검색해야 할 수도 있습니다 ... 왜 그들이 userLocation의 정보를 추정하지 않는지는 저 밖에 있습니다. 그것이 나오는 것에 따라

http://msdn.microsoft.com/en-us/library/ff701714.aspx

+0

불행히도 IP와 userLocation 모두 결과를 매우 크게 줄이지는 않습니다. 결과를 모두 제외해야합니다. 특히 미국 밖의 결과를 제외해야합니다. – AceoStar