-3

我想在 google places api 上搜索特定位置的位置并将它们显示在 JSOn 输出上。假设我想搜索我附近的所有银行。我该如何编码。你能提供示例代码吗?

4

2 回答 2

0

试试这个工作代码..它使用jquery mobile。它会找到您当前的纬度和经度周围的地方。

地图.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>

地图.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 回答