API谷歌地图Javascript地址到LatLng

时间:2015-03-03 10:17:43

标签: javascript google-maps

我正在尝试在我的网站上使用Google Maps API,并且我想将用户输入的地址转换为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"); 编辑:我把我的所有代码

1 个答案:

答案 0 :(得分: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);
                });
            }
        }