1

私はグーグルマップを使用していて、places APIを試していますが、何かが不思議に思います...

maps.google.comを読み込んでクアラルンプールに行き、検索ボックスに「食べ物」と入力すると、地図上に何百ものレストランが表示されます。これらを自分のマップに入れたいと思います。

Places APIを使用して、サンプルコードをほぼコピーしました。

function initialize() {
    var plat = 3.15;
    var plong = 101.7;
    var ppos = new google.maps.LatLng(plat, plong);
    var mapOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        draggable: false,
        zoom: 10,
        center: ppos
    };
    map = new google.maps.Map(document.getElementById("mapcanvas"), mapOptions);
    var request = {
        location: ppos,
        radius: '10000'
    };
    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,
        icon: place.icon
    });

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

このコードを実行すると、結果が得られますが、いくつかのモールや美術館などの主要な場所はごくわずかです。では、Google自身の地図に表示されている美しいデータをすべて取得するにはどうすればよいでしょうか。

4

1 に答える 1

1

したがって、いくつかの問題があったことが判明しました。イノデシアでは分類が壊れているため、代わりにキーワードを使用すると、次のように問題が解決しました。

var request= { 
  location: ppos, 
  radius: 10000, 
  keyword: 'restaurant' }

キーワードは配列ではなく文字列を取り、radiusは文字列ではなく数値を取ります。リクエストのタイプの概要は、http ://code.google.com/apis/maps/documentation/javascript/reference.html#PlaceSearchRequestで確認できます。

于 2012-02-03T11:02:03.690 に答える