var geocoder;
var map;
var MapCenter, map, x, y, z;
function geocode(address, callback) {
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var city=geoip2.city();
map.setCenter(results[0].geometry.location);
map.fitBounds(results[0].geometry.bounds);
callback();
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
function initialize() {
geocoder = new google.maps.Geocoder();
var city=geoip2.city();
var mapOptions = {
zoom: 1,
}
map = new google.maps.Map(document.getElementById('map'), mapOptions);
geocode(city, function () {
MapCenter = map.getCenter();
x = MapCenter.lat(), y = MapCenter.lng(), window.z = 0;
myLatLng=new google.maps.LatLng(x,y);
}
这就是我所拥有的。正如您所看到的,函数geocode将城市作为参数。唯一的问题是在哪里宣布这个城市变量。正如您所看到的,我已尝试在地理编码函数定义和初始化函数中执行此操作。两者都以不确定的结果结束。我应该在哪里声明这个,以便我的地理编码功能运行没有错误?
好的,经过进一步调查,我认为我有更大的问题。出于某种原因,甚至geoip样本也返回未定义的值。例如,此页面上的示例:http://dev.maxmind.com/geoip/legacy/javascript/。如果您查看www.supercuber.com并单击查看源,您可以看到我添加了他们的示例但javascript无法正常工作。我不知道为什么会这样。