2013-01-16 90 views
1

我想要使用谷歌地圖API從Google地圖網址"http://maps.google.co.in/maps?q=canara+bank&hl=en&sll=12.953997,77.63094&sspn=1.069318,1.234589&hq=canara+bank&t=m&z=10"呈現完全相同的結果。在谷歌地圖中使用地理編碼API搜索位置

我試過使用geoCode API,但有些已經無法實現類似的結果。

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
    html { 
      height: 100% 
    } 

    body { 
     height: 100%; 
     margin: 0; 
     padding: 0 
    } 

    #map_canvas { 
     height: 100% 
    } 
</style> 
<script type="text/javascript" 
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDjW1WmSDPUaziJY6DtwMtRLhsGrzy7YLA&sensor=false"> 
</script> 
<script type="text/javascript"> 

function getLocation() 
{ 
if (navigator.geolocation) 
{ 
    navigator.geolocation.getCurrentPosition(populateData,showError); 
} 
else{alert("Geolocation is not supported by this browser.");} 
} 

function showError(error) 
    { 
    switch(error.code) 
    { 
    case error.PERMISSION_DENIED: 
    alert("User denied the request for Geolocation."); 
     break; 
    case error.POSITION_UNAVAILABLE: 
     alert("Location information is unavailable."); 
     break; 
    case error.TIMEOUT: 
     alert("The request to get user location timed out."); 
     break; 
    case error.UNKNOWN_ERROR: 
     alert("An unknown error occurred."); 
     break; 
    } 
    } 

function populateData(position) 
{ 

    var geocoder = new google.maps.Geocoder(); 
    var address = "canara bank"; 

    geocoder.geocode({ 
         'address': "canara bank"       
        }, function(results, status) { 

    if (status == google.maps.GeocoderStatus.OK) { 
     var latitude = results[0].geometry.location.lat() ; 
     var longitude = results[0].geometry.location.lng(); 

     var mapOptions = { 
        //display the map center from the user location 
        center: new google.maps.LatLng(position.coords.latitude,position.coords.longitude), 
        zoom: 9, 
        zoomControl:true, 
        zoomControlOptions: { 
        style:google.maps.ZoomControlStyle.SMALL 
        }, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 
      var map = new google.maps.Map(document.getElementById("map_canvas"), 
      mapOptions); 


    var marker = new google.maps.Marker({  
      position: new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()),  
      map: map  
      }); 

//for placing the markers 
    var markers; 
    var i;  
    for(i=0;i<results.length;i++){ 
     markers = new google.maps.Marker({  
      position: new google.maps.LatLng(results[i].geometry.location.lat(), results[i].geometry.location.lng()),  
      map: map, 
      }); 
    } 

    var circleOptions = new google.maps.Circle({ 
        center: new google.maps.LatLng(latitude, longitude), 
        radius: 2000, 
        strokeColor: "#FF0000", 
        strokeOpacity: 0.5, 
        strokeWeight: 2, 
        fillColor: "#FF0000", 
        fillOpacity: 0.35, 
        map: map 
       });  

    } 
}); 

} 

</script> 

</head> 
<body onload="getLocation()"> 

<div id="map_canvas" style="width: 100%; height: 50%"></div> 
<form name="form_simple" action=" " method="get"> 
    <center> 
     <label id="d1"> map test</label> 
    </center> 
</form> 

我也想知道是否有一個SLL(在谷歌的參數映射指定緯度和經度),而使用地理編碼API的選擇。

在此先感謝。

+0

ü意味着這個參數? new google.maps.LatLng(12.953997,77.63094); –

+0

是的。在使用Google Places API中使用「關鍵字」字段找到解決方案。 – jasdmystery

回答

5

「卡納拉銀行」不是地址。所述geocoding API轉換地址,以座標(從文檔):

地理編碼是將地址(例如「1600劇場大道,山景,CA」)到 地理座標(例如緯度37.423021和經度的過程-122.083739 )

你想要的Places API

的谷歌Places API是返回有關地方信息的服務 - 這個API爲中定義種場所,地理位置或名勝景點

Example

+0

謝謝。在使用Google Places API中使用「關鍵字」字段找到解決方案。 – jasdmystery

+0

Hi @jasdmystery您能否提供一個在Places API中使用關鍵字的例子 – Sanshayan