我第一次玩谷歌地图。我正在努力寻找有关标记所在位置的一些信息。
我已经为你建立了一个例子。当我拖动A节点时,问题发生了,getGeocode()返回undefined?
当我拖动它时,我需要从节点中提取邮政编码,城市和地址。
请参阅http://dev.korebogen.dk/gmap/
提前致谢!
更新
我从响应中编辑了我的代码 - 现在我将两个地址都删除了(仍然需要删除它以便我在单独的变量中获取信息)但是由于某种原因我的方向输出结果是“0”和“1 “(数组)我真的需要反转地理编码吗?
是否可以在地图上制作点击事件以添加A和B标记(如果加载时没有指示?)http://dev.korebogen.dk/gmap/已更新!
它来自:
var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x;
这是更新的部分:
GEvent.addListener(newMarkers[i], "dragend", function() {
var points = [];
for (var i = 0; i < newMarkers.length; i++) {
var param = i + "@" + newMarkers[i].getLatLng().y + "," + newMarkers[i].getLatLng().x;
//points[i] = newMarkers[i].getLatLng();
points.push(param);
if (!i) {
var x = new GClientGeocoder();
x.getLocations(newMarkers[0].getLatLng(), function(addresses) {
if (addresses.Status.code == 200) {
var address = addresses.Placemark[0].address;
document.getElementById("start").innerHTML = address;
}
});
x.getLocations(newMarkers[1].getLatLng(), function(addresses) {
if (addresses.Status.code == 200) {
var address = addresses.Placemark[0].address;
document.getElementById("end").innerHTML = address;
}
});
}
}
gdir.loadFromWaypoints(points);
});
答案 0 :(得分:1)
答案 1 :(得分:1)
此处的问题是,您从loadFromWaypoints请求返回的对象未填充您在onGDirectionsLoad()中要求的所有成员。如果你查看你的javascript错误日志,你会看到:
错误:gdir.getRoute(0).getStartGeocode()。AddressDetails.Country未定义
好的,根据Google Documention,来自loadFromWaypoints和GClientGeodcoder的响应应该相同。
我冒昧地做了一些testing with your sample,突然变得很明显,答案是不一样的。如果您查看http://www.cannonade.net/geo.js,您可以看到我对GClientGeocoder请求和第一个标记的响应进行了字符串化,它们非常不同。所以你需要做几件事:
检查您的回复,确保您没有因未填充的结果而出现javascript错误:
if('resD中的'AddressDetails')
对每个标记点执行GClientGeocoder请求以获取完整的地址信息。我的样本为第一个标记做了这个。