2012-03-01 44 views
8

Tôi đang cố truy xuất chi tiết địa điểm bằng Thư viện Google Địa điểm. Khi bạn nhấp vào vị trí đánh dấu Tôi muốn để có thể thấy địa chỉ, tên, trang web vvAPI Google Địa điểm - Yêu cầu chi tiết địa điểm không được xác định

Tôi đang sử dụng các hướng dẫn sau: http://code.google.com/apis/maps/documentation/javascript/places.html

Tất cả dường như được đi khá tốt. Trong điểm đánh dấu của tôi, tôi có thể hiển thị tên và xếp hạng nhưng địa chỉ, trang web và số điện thoại tất cả đều xuất hiện dưới dạng 'không xác định'. Có phải vì Google không có thông tin tôi yêu cầu ở những địa điểm này không? Hay tôi đã làm gì sai?

Đây là mã tôi đang sử dụng: var map; var infowindow;

function initialize() { 
    var pyrmont = new google.maps.LatLng(-33.8665433, 151.1956316); 

    map = new google.maps.Map(document.getElementById('map_canvas'), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: pyrmont, 
     zoom: 15 
    }); 

    var request = { 
     location: pyrmont, 
     radius: 5000, 
     types: ['bar'] 
    }; 
    infowindow = new google.maps.InfoWindow(); 
    service = new google.maps.places.PlacesService(map); 
    service.search(request, callback); 
    } 

    function callback(results, status) { 
    if (status == google.maps.places.PlacesServiceStatus.OK) { 
     for (var i = 0; i < results.length; i++) { 
     createMarker(results[i]); 
     } 
    } 
    } 

    function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(place.name + "<br />" + place.formatted_address +"<br />" + place.website + "<br />" + place.rating + "<br />" + place.formatted_phone_number); 
     infowindow.open(map, this); 
    }); 
    } 

Bất kỳ trợ giúp hoặc ý tưởng nào sẽ được đánh giá cao.

Chúc mừng.

JA

Trả lời

17

Bạn đang làm một Nơi tìm kiếm, mà không trả lại tất cả các lĩnh vực mà bạn đang sử dụng:

http://code.google.com/apis/maps/documentation/javascript/places.html#place_search_responses

Để có được địa chỉ, trang web, v.v., bạn cũng cần phải gọi số place.getDetails(), chuyển qua số reference của Địa điểm. Xem:

http://code.google.com/apis/maps/documentation/javascript/places.html#place_details_requests

đại khái, mã của bạn sẽ thay đổi để:

function createMarker(place) { 
    var placeLoc = place.geometry.location; 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location 
    }); 

    var request = { reference: place.reference }; 
    service.getDetails(request, function(details, status) { 
     google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(details.name + "<br />" + details.formatted_address +"<br />" + details.website + "<br />" + details.rating + "<br />" + details.formatted_phone_number); 
     infowindow.open(map, this); 
     }); 
    }); 
    } 
+0

Vậy là xong. Cảm ơn bạn rất nhiều. Tôi thực sự đánh giá cao sự giúp đỡ của bạn. – Jim

+0

Không có vấn đề gì! Vui vì tôi có thể giúp :) –

+0

hi .. tôi đang đối mặt với cùng một vấn đề và đã thử giải pháp này. nhưng không thể nhận được kết quả. "service.getDetails (yêu cầu, chức năng (chi tiết, trạng thái)" nơi khai báo biến dịch vụ này? Tôi có cần phải khai báo lại điều này trong hàm tạo điểm đánh dấu không? – Thakur

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