Google地图以特定搜索区域为中心

时间:2012-02-21 09:01:22

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

我在我的网站上使用Google Maps api v.3。我想要实现的是以下流程:

  1. 用户会看到一个表格,在那里他输入一个地址(某种类型 - 城市,街道等)。
  2. 填写表格后,会向他显示一张地图,向他显示以他输入的地址为中心的地图。然后他可以输入关键字来搜索地图区域中的谷歌地点。
  3. 我停下来的是将地址转换为地图。据我了解v3 API,我应该用LatLng中心位置初始化地图 - 但是有一个城市名称或者我还不能做到。我需要在文本地址和坐标之间进行某种翻译 - 例如,当我搜索“Beverly Hills”时谷歌地图正在做什么。我觉得有些逆转?我应该如何在JavaScript API中执行此操作?

    或者是否可以在v3嵌入式地图中包含搜索栏?

2 个答案:

答案 0 :(得分:2)

您需要使用geocode类似下面的内容

http://code.google.com/apis/maps/documentation/javascript/geocoding.html

复制

  var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

  function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, 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("Geocode was not successful for the following reason: " + status);
      }
    });
  }

然后您需要在按钮上点击<{1}}功能

答案 1 :(得分:2)

您可以使用Google Maps v3 Geocoding API将地址转换为纬度/经度对。在此之后,您可以使用该数据初始化地图。