2012-12-21 29 views
5

Tôi có chức năng này để trả lại đề xuất địa chỉ bing dựa trên địa chỉ người dùng đã nhập. Tôi đã chỉ định userLocation, nhưng kết quả gần như không chính xác như tôi tưởng tượng. Tôi có nên làm gì thêm ở đây không? Tôi có thể chỉ định thủ công mã tiểu bang hoặc mã bưu điện nếu tôi có, nhưng tôi muốn tránh thực hiện xử lý bài đăng.Làm cách nào để lọc kết quả API Vị trí Bing theo vị trí của người dùng để tự động hoàn tất?

Ví dụ: nhập 111 trả về kết quả từ 111, NY, 111 Thụy Điển, 111 Đan Mạch. Tôi muốn hạn chế điều này để chỉ có Hoa Kỳ ít nhất, và thực sự chỉ trong một vài tiểu bang mà tôi có thể hardcode. Khi tôi chỉ định các tùy chọn cho mã bưu điện trong dữ liệu theo cách thủ công, nó sẽ ghi đè những gì tôi đã sử dụng trong truy vấn.

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'); 
     } 
    }); 
}; 

Trả lời

1

Khi nó quay ra, điều này sẽ thực sự làm những gì tôi dự định (Trừ khi thử nghiệm chứng minh khác) tôi đã xác định địa chỉ như một param duy nhất, q, nhưng nếu tôi chỉ định addressLine kết hợp với userLocation, nó lọc kết quả như mong đợi.

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

Tôi không quen với Bing Maps API ngoài một số tinkering tôi đã làm một lúc trước ... nhưng bạn đã thử qua ip hoặc bao gồm cả địa phương? Bạn có thể cần phải đảo ngược tra cứu người dùng Lat/Lng để có được một tên thành phố ... tại sao họ sẽ không ngoại suy thông tin đó từ userLocation là ngoài tôi mặc dù.

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

+0

Tôi thật không may, cả IP và userLocation dường như không thu hẹp kết quả xuống rất mạnh. Tôi cần loại trừ tất cả các kết quả, đặc biệt là những kết quả ngoài Hoa Kỳ. – AceoStar