2015-03-03 2 views
0

Я пытаюсь использовать API Карт Google на своем веб-сайте, и я хочу преобразовать адрес, введенный пользователем в LatLng, и показать местоположение на карте. Я уже знаю, что мне нужно использовать функцию геокодирования, но по какой-то причине она не работает. Вот код:API Google Maps Javascript Address to LatLng

<!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="http://maps.googleapis.com/maps/api/js?key=AIzaSyBSkRxYKDW33Zng3Kmp_7IC_nom9JEEVwc&sensor=FALSE"> 
</script> 
<script type="text/javascript"> 
    function initialize() { 
    var mapOptions = { 
     center: new google.maps.LatLng(-34.397, 150.644), 
     zoom: 8, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 
    } 
    function moradaToLatLng(morada){ 

    var geocoder = new google.maps.Geocoder(); 
    if (geocoder) { 
     alert("1"); 
     geocoder.geocode({ 
      'address': address 
     }, function (results) { 
      alert("2"); 
      map.setCenter(results[0].geometry.location); 
      map.setZoom(16); 
      var m = document.getElementById("morada").innerHTML = results[0].geometry.location; 
      //criarPopup(address, results[0].geometry.location); 
     }); 
    } 
    } 
</script> 
</head> 
<body onload="initialize()"> 
<div id="map_canvas" style="width:100%; height:80%"></div> 
<div id="form"> 
    <input type="text" id="morada" value="Morada"> 
    <button id="btnMorada" onclick="moradaToLatLng(morada.value)">Ok</button> 
</div> 
</body> 
</html> 

По какой-то причине, он не входит в функции и дисплей alert("2"); EDIT .: Я положил все мой код

+0

вы можете показать ваш включенный Google Map API JS файл? –

+0

@IrfanTahirKheli Я включил весь мой код. –

ответ

1

Добавьте эту строку в ваш код:

var address = document.getElementById('morada').value; 

следующим образом:

function moradaToLatLng(morada) { 
      var address = document.getElementById('morada').value; 
      var geocoder = new google.maps.Geocoder(); 
      if (geocoder) { 
       alert("1"); 
       geocoder.geocode({ 
        'address': address 
       }, function (results) { 
        alert("2"); 
        map.setCenter(results[0].geometry.location); 
        map.setZoom(16); 
        var m = document.getElementById("morada").innerHTML = results[0].geometry.location; 
        //criarPopup(address, results[0].geometry.location); 
       }); 
      } 
     } 
+0

О, Боже, я действительно ненавижу эти простые ошибки. Спасибо большое: D –

Смежные вопросы