% % geocoder.getLocations(latlng, showAddress);
% }
}
function showAddress(response) {
% map.clearOverlays();
% if (!response || response.Status.code != 200) {
% % alert("Status Code:" + response.Status.code);
% } else {
% % place = response.Placemark[0];
% % point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
% % marker = new GMarker(point);
% % map.addOverlay(marker);
% % marker.openInfoWindowHtml(
% % % % '<b>orig latlng:</b>' + response.name + '<br/>' +
% % % % '<b>latlng:</b>' + place.Point.coordinates[1] + "," + place.Point.coordinates[0] +
'<br>' +
% % % % '<b>Status Code:</b>' + response.Status.code + '<br>' +
% % % % '<b>Status Request:</b>' + response.Status.request + '<br>' +
% % % % '<b>Address:</b>' + place.address + '<br>' +
% % % % '<b>Accuracy:</b>' + place.AddressDetails.Accuracy + '<br>' +
% % % % '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);
% }
}
地址解析缓存
默认情况下,GClientGeocoder会配备客户端缓存。该缓存用于存储地址解析器响应,这样,当对某
个地址重复进行地址解析时,地址解析器就能更快地作出响应。要关闭缓存,您只需向 GClientGeocod
er对象的 setCache()方法传递 null即可。不过,我们建议您启用缓存功能,因为这样可以提高性能。
要更改 GClientGeocoder正在使用的缓存,请调用 setCache(),然后传入新的缓存。要清空当前缓
存中的内容,请直接在地址解析器或缓存上调用 reset()方法。
我们鼓励开发人员构建自己的客户端缓存。在此示例中,我们构建了一个缓存,其中包含了对六座首都
(属于 geocoding API 涵盖的国家/地区)的预先计算的地址解析器响应。我们先构建了地址解析响应的
数组,然后,创建了用于扩展标准 GeocodeCache 的自定义缓存。定义缓存后调用 setCache()方法。
系统对缓存中存储的对象不会执行严格的检查,因此您也可以在其中存储其他信息(比如人口规模)。
// Builds an array of geocode responses for the 6 capitals
var city = [
% {
% % name: "Washington, DC",
% % Status: {