当Google Maps提供功能齐全的Javascript客户端地理编码API时,使用服务器端地理编码Web服务没有任何优势。
首先,这将自动解决您的同源问题,此外,请求限制将按客户端IP地址而不是服务器IP地址进行计算,这对于受欢迎的网站可能会产生巨大的影响。
这是一个使用Javascript Geocoding API v3的非常简单的示例:
<script src="http://maps.google.com/maps/api/js?sensor=false"></script><script type="text/javascript"> var geoprer = new google.maps.Geoprer(); var address = 'London, UK'; if (geoprer) { geoprer.geopre({ 'address': address }, function (results, status) { if (status == google.maps.GeoprerStatus.OK) { console.log(results[0].geometry.location); } else { console.log("Geocoding failed: " + status); } }); } </script>如果出于某些原因您仍想使用服务器端Web服务,则可以设置一个非常简单的反向代理,如果使用的是Apache
,则可以使用mod_proxy。这将允许您为AJAX请求使用相对路径,而HTTP服务器将充当任何“远程”位置的代理。
在mod_proxy中设置反向代理的基本配置指令是ProxyPass。您通常按以下方式使用它:
ProxyPass /geopre/ http://maps.google.com/maps/api/geopre/
在这种情况下,浏览器可以向发送请求,
/geopre/output?parameters但服务器将通过充当的代理来提供服务
http://maps.google.com/maps/api/geopre/output?parameters。



