【发布时间】:2013-07-22 16:11:06
【问题描述】:
我必须将谷歌地图 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);
}
}
);
}
}
这是我写的:
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"));
geocoder = new google.maps.Geocoder();
geocoder.geocode(address, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var center = results[0].geometry.location;
map.setCenter(center);
var marker = new google.maps.Marker({
map: map,
position: center
});
}
}
}
谁能告诉我我做错了什么?
非常感谢。
马塞洛
【问题讨论】:
-
什么不起作用?在这两个版本的代码中都没有调用 showAddress,它是如何使用的?
-
感谢您的回复。我不知道出了什么问题,但我需要从请求中解析地址并创建地图。我忘了插入我如何调用该函数。您应该使用该信息更新您的问题。您提供给页面的查询字符串是什么?
标签: google-maps google-maps-api-3 google-maps-api-2