谷歌地图 - 设置地址onLoad

时间:2013-07-08 17:19:20

标签: javascript google-maps google-maps-api-3

我是谷歌地图API的新手,我在下面的谷歌地图工作。但是,我很难理解如何设置地址。我有2,000个条目,每个条目都包含一个存储在数据库中的地址,我拥有所需的所有数据来设置'给定机会的描述页面的地图onLoad的地址。但是,我不知道该怎么做。我想知道是否有人可以给我一个基本的例子来设置地址,城市,州,拉链,然后在地图上也有一个标记。

另外,我很困惑,如果我将地址的所有组件分开,我不需要地理编码,对吗?没有地理编码只是让您可以轻松地从未解析/长地址字符串创建地图,并限制您可以请求地理编码的次数?换句话说,如果我拥有存储在数据库中的所有地址组件(例如邮政编码,城市,州,地址等),那么我是否可以设置地址而不受谷歌地图地理编码限制的限制?

以下地址:

123 Flower Street, Miami, Florida 32826

我的JS到目前为止......

   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);
    }
    google.maps.event.addDomListener(window, 'load', initialize);

我感谢任何建议!

非常感谢提前!

1 个答案:

答案 0 :(得分:4)

您正在寻找地理编码:https://developers.google.com/maps/documentation/geocoding/

此处您有代码,可以在Google上查询您地址的位置,然后在收到的位置上指定标记:

  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);
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': "123 Flower Street, Miami, Florida 32826" }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location,
                    });
                } else 
                  alert("Problem with geolocation");

      });
  }
  google.maps.event.addDomListener(window, 'load', initialize);