Google maps 谷歌地图API问题

Google maps 谷歌地图API问题,google-maps,google-maps-api-3,google-maps-api-2,Google Maps,Google Maps Api 3,Google Maps Api 2,我必须把谷歌地图api代码从v2翻译成v3。我试过了,但没用 这是旧版本代码: function getQueryVariable(variable){ var query = window.location.search.substring(1); var vars=query.split("&"); for(var i=0;i<vars.length;i++) { var pair = vars[i].split("="); if (pair[0]

我必须把谷歌地图api代码从v2翻译成v3。我试过了,但没用

这是旧版本代码:

function getQueryVariable(variable){
  var query = window.location.search.substring(1);
  var vars=query.split("&");
  for(var i=0;i<vars.length;i++) {
    var pair = vars[i].split("=");
    if (pair[0] == variable) {
      return pair[1];
    }
  }
}

    var map = null;
    var geocoder = null;


    function showAddress(address, year1,year2,year3) {
        map = new GMap2(document.getElementById("map_canvas"));
        geocoder = new google.maps.Geocoder();
            if (geocoder) {
               geocoder.getLatLng(address,function(point) {
                        if (!point) {
                           alert(address + " not found");
                           } else {
                             map.setCenter(point, 11);
                             var marker = new GMarker(point);
                             map.addOverlay(marker);

                             }
                          }
                    );
            }
    }
函数getQueryVariable(变量){ var query=window.location.search.substring(1); var vars=query.split(&);
对于(var i=0;i,您的代码中存在语法错误。但主要问题是您需要初始化google.maps.Map对象。当前google.maps.maptions对象中有3个必需的选项:

这对我很有用:

function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if(decodeURIComponent(pair[0])) { 
                return pair[1];
            }
        }
    }

var map = null;
var geocoder = null;
function showAddress(address) {
  var map=new google.maps.Map(document.getElementById("map_canvas"),{center:new google.maps.LatLng(0,0), zoom:2, mapTypeId : google.maps.MapTypeId.ROADMAP});

  geocoder = new google.maps.Geocoder();
  geocoder.geocode({address:address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      var center = results[0].geometry.location;
      map.setCenter(center);
      if (results[0].geometry.viewport) map.fitBounds(results[0].geometry.viewport)
      else if (results[0].geometry.bounds) map.fitBounds(results[0].geometry.bounds)
      var marker = new google.maps.Marker({
                         map: map,
                         position: center 
                         });
    } else alert("Geocoder returns: " + status); 
  });
}
函数getQueryVariable(变量){ var query=window.location.search.substring(1); var vars=query.split(&);
对于(var i=0;i什么不起作用?在两个版本的代码中都没有对showAddress的调用,这是如何使用的?感谢您的回复。我不知道是什么问题,但我需要从请求中解析地址并创建映射。我忘了插入调用函数的方式。您应该更新r关于这些信息的问题。您提供给页面的查询字符串是什么?谢谢,现在它可以工作了。现在我将尝试在信息窗口中放置一个图表。您对此有什么建议吗?
center | LatLng | The initial Map center. Required.
mapTypeId | MapTypeId | The initial Map mapTypeId. Required.
zoom | number | The initial Map zoom level. Required.
function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if(decodeURIComponent(pair[0])) { 
                return pair[1];
            }
        }
    }

var map = null;
var geocoder = null;
function showAddress(address) {
  var map=new google.maps.Map(document.getElementById("map_canvas"),{center:new google.maps.LatLng(0,0), zoom:2, mapTypeId : google.maps.MapTypeId.ROADMAP});

  geocoder = new google.maps.Geocoder();
  geocoder.geocode({address:address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
      var center = results[0].geometry.location;
      map.setCenter(center);
      if (results[0].geometry.viewport) map.fitBounds(results[0].geometry.viewport)
      else if (results[0].geometry.bounds) map.fitBounds(results[0].geometry.bounds)
      var marker = new google.maps.Marker({
                         map: map,
                         position: center 
                         });
    } else alert("Geocoder returns: " + status); 
  });
}