-3

グーグルプレイスAPIで特定の場所の場所を検索し、JSOn出力に表示したいとします。近くのすべての銀行を検索するとします。そのためのコーディング方法を教えてください。サンプルコードを教えてください。

4

2 に答える 2

0

この作業コードを試してください..jquery mobileを使用しています。現在の緯度と経度の周りの場所を見つけます。

map.html

<!DOCTYPE html> 
<html> 
  <head> 
  <meta charset="utf-8">



  <link rel="stylesheet" href="css/jquery.mobile-1.0.min.css" />


  <script src="js/jquery.js"></script>   
  <script src="js/jquery.mobile-1.0.js"></script>   
  <script src="js/map.js"></script>

 <script type="text/javascript" src="//maps.googleapis.com/maps/api/js?sensor=true&libraries=places"></script>

</head> 

<body> 
<div data-role="page" data-theme="none" class="page-map" id="page-map">
  <script src="js/canvas.js"></script>
    <div id="map-canvas">
                        <!-- map loads here... -->
    </div>
 </div>
</body>
</html>

map.js

var map;
var infowindow;
var lat;
var lng;
var lng;
var service;
var reference;
var initialLocation;

$( '.page-map' ).live( 'pagecreate',function(event){        
    checkLocation();
});


function checkLocation() {
    if (navigator.geolocation) {

        navigator.geolocation.getCurrentPosition(function(position) {

            initialLocation = new google.maps.LatLng(position.coords.latitude,
                    position.coords.longitude);
            lat = position.coords.latitude;
            lng = position.coords.longitude;

            callPlaceService(lat, lng);
        }, gpsFail, {
            enableHighAccuracy : true,
            maximumAge : 300000
        });
    }
}

function callPlaceService(lat, lng) {

    var pyrmont = new google.maps.LatLng(lat, lng);

    var myOptions = {
        zoom : 15,
        center : pyrmont,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map-canvas"), myOptions);

    var request = {
        location : pyrmont,
        radius : 5000,
        //types: ['atm','bank'],
        keyword : 'Bank'
    };

    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++) {

            var requestDetails = {reference : results[i].reference};

            service.getDetails(requestDetails, checkDetailedStatus);
        }
    }
}

function checkDetailedStatus(details, detailStatus) {
    if (detailStatus == google.maps.places.PlacesServiceStatus.OK) {

        var name = '{"name":"'+  details.name +'"}';
        var address = '{"address":"' + details.formatted_address + '"}'; 
        var phone = '{"phone":"' + details.formatted_phone_number+ '"}';        
        var website = '{"website":"' + details.website + '"}';
        var full_address = name + "," + address + "," + phone + "," + website;  
        console.log(full_address);
        var jsonTxt = JSON.stringify(full_address);

    } 
}

function gpsFail() {
    //Geo-location is supported, but we failed to get your coordinates. 
}
于 2012-05-29T09:00:17.587 に答える
-1

これを試してください。

ここでは、距離に応じて半径を指定する必要があります。タイプは、ATM、レストラン、ガソリンスタンドなど、必要に応じて指定できます。

チェンナイ、バンガロールなどの場所を指定するか、緯度/経度を指定する必要があります。簡単に説明してください。Android/iPhone のあなた

于 2012-05-29T05:45:28.467 に答える