2

Google Maps&Places APIを使用して、近くのレストランやその他のアトラクションを見つけるためのアプリケーションを作成しています。情報を取得するためにグーグルプレイス検索機能を使用していました

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

しかし、検索を使用して作成したマーカーのフォーマットされたアドレスのように、必要な値が返されないことに気付きました。今私が混乱しているのは、getDetails()関数を使用するために必要なこの追加情報を取得することです。これは、上記で使用した検索機能を置き換える必要がありますか、それともしばらくしてから配置する必要がありますか?グーグルが彼らのウェブサイトでそれを説明するとき、それは検索関数を置き換える必要があるように見えます。例では、それは同じ正確なパラメータを取り、検索関数とまったく同じように実行されますが、私がそれを行うと、それは単に何も返さないからですまったく場所。これが私が達成しようとしていることを説明するのに役立つ私のコードのビットです。

  //Function for finding destination types. Receives destination type as a string.
function findDestinationType(where)
{
    request = null;
    var request = 
    {
        location: point,
        radius: 2500,
        types: [where]
    };

    var service = new google.maps.places.PlacesService(map);
    service.getDetails(request, callback);
}
//Call Back to fill array with markers & locations 
function callback(results, status) 
{
    if (status == google.maps.places.PlacesServiceStatus.OK) 
    {
        initialize();
        iterator = 0;
        markerArr = [];
        for (var i = 0; i < results.length; i++) 
        {
            markerArr.push(results[i].geometry.location);
            result = results[i];
            createMarker(results[i]);
        }
    }
    else
    {
        alert("Sorry, there are no locations in your area");
    }
}
//Function to create marker
function createMarker(place)
{
    var marker = new google.maps.Marker(
    {
        position: markerArr[iterator],
        map: map,
        draggable: false,
        animation: google.maps.Animation.DROP
    })
    //alert(markerArr[iterator]);
    markersA.push(marker);
    iterator++;
    google.maps.event.addListener(marker, 'click', function()
    {
        console.log('clicked');
        infowindow.setContent(place.name);
        infowindow.open(map, this);
        //directionsDisplay.setMap(map);
    });
}
4

1 に答える 1

4

あなたの仮定は間違っています、getDetails()は同じパラメータを期待していません、それは場所への参照を期待しています。

場所検索の結果として取得する参照は、トークンです。

したがって、ワークフローは場所を検索するときです。

  1. places.search()場所に関する基本的な情報に使用
  2. さらに情報が必要な場合はplaces.getDetails()、手順1の参照を引数として使用します。
于 2012-08-07T18:22:52.533 に答える