2014-05-04 15 views
10

Tôi có tham chiếu đến Google Place và sử dụng API Javascript để lấy chi tiết địa điểm.Nhận chi tiết Địa điểm Google mà không có Bản đồ

Nó hoạt động tốt miễn là có bản đồ trên trang.

Nhưng nếu không có bản đồ - tôi chỉ muốn chi tiết của địa điểm - nó phá vỡ vì bản đồ biến không được xác định.

Các documentation quy định cụ thể:

"Nơi tin chi tiết được yêu cầu với một cuộc gọi đến getDetails của dịch vụ() phương pháp"

service = new google.maps.places.PlacesService(map); 
service.getDetails(request, callback); 

Nếu tôi bỏ qua các biến bản đồ, tôi nhận được: "Loại lỗi chưa gặp: Không thể đọc thuộc 'innerHTML' không xác định"

tôi có thể làm cho một yêu cầu phía máy chủ, nhưng có một giới hạn số lần bạn có thể làm điều đó.

Có cách nào trong Javascript để chỉ lấy chi tiết địa điểm mà không có bản đồ không?

+0

Bạn có thể có bản đồ trên trang nhưng không cung cấp chiều cao và chiều rộng cho map_canvas. Bản đồ này sẽ không hiển thị và tìm kiếm sẽ hoạt động. – ihimv

Trả lời

-1

Không có bản đồ là cần thiết, bạn có thể sử dụng những nơi api với bất cứ điều gì chọn bạn đưa vào nó, nếu ý tưởng của bạn là để có được một nơi cụ thể, sử dụng Autocomplete

var options = { 
       types: ["(cities)"] 
      } 


      this.autocompletePlaces = new google.maps.places.Autocomplete(document.getElementById('txtPlaces'),options); 

google.maps.event.addListener(this.autocompletePlaces, 'place_changed',function(){ 
var place = this.autocompletePlaces.getPlace(); 
       var address = this.autocompletePlaces.formatted_address; 
}); 

Nếu bạn đang tìm kiếm một danh sách các địa điểm có cụm từ tìm kiếm sau đó sử dụng

this.autocompletePlaces = new google.maps.places.SearchBox(document.getElementById('txtPlaces'),options); 
this.autocompletePlaces.addListener('places_changed', this.attachSelectedPlace.bind(self)); 

trong trường hợp cuối cùng này bạn sẽ nhận được mảng địa điểm thay vì một địa điểm. Hy vọng nó sẽ giúp

+0

Thậm chí còn có một ví dụ trong tài liệu chính thức: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform – miguev

+0

-1 Câu hỏi hỏi về điểm cuối PlacesService. Và giải pháp của bạn là tìm nạp danh sách kết quả tự động hoàn thành bằng cách sử dụng đầu vào đã nhập, chứ không tìm nạp các đối tượng địa điểm riêng lẻ bằng cách sử dụng placeID. – relic

+0

Nó có, nhưng nếu bạn biết một giải pháp thay thế cho vấn đề là 'Có cách nào trong Javascript để chỉ lấy chi tiết địa điểm mà không có bản đồ?' bạn sẽ không trả lời? – jstuartmilne

4

Sau khi làm việc với điều này một chút, giải pháp mà tôi đưa ra là tạo đối tượng bản đồ mới mà không cần thêm nó vào tài liệu. API có vẻ ổn với điều này.

let map = new google.maps.Map(document.createElement('div')); 

Sau đó thực hiện yêu cầu của bạn, giống như trước đây với sơ đồ giả.

this.googlePlaces = new google.maps.places.PlacesService(map); 
this.googlePlaces.getDetails(request, callback); 
+0

Có ai biết nếu điều này được cho phép thông qua các điều khoản không? Theo trang [this] (https://developers.google.com/places/web-service/policies) ** "Nếu ứng dụng của bạn hiển thị dữ liệu Dịch vụ web API Google địa điểm trên một trang hoặc chế độ xem không hiển thị Google Bản đồ, bạn phải hiển thị biểu tượng "Được hỗ trợ bởi Google" với dữ liệu đó "** Nhưng tại sao chúng buộc bạn chỉ định một elemnt html? – Man

Các vấn đề liên quan