Ответ 1
Я не вижу преимущества в использовании серверной веб-службы геокодирования на стороне сервера, когда в Google Maps представлен полный признак API геокодирования на стороне клиента для JavaScript.
Прежде всего, это автоматически решает проблему с одним и тем же происхождением, и, кроме того, пределы запросов будут вычисляться на каждый IP-адрес клиента, а не на каждый IP-адрес сервера, что может иметь огромное значение для популярного сайта.
Вот очень простой пример использования JavaScript API геокодирования v3:
<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var geocoder = new google.maps.Geocoder();
var address = 'London, UK';
if (geocoder) {
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
console.log(results[0].geometry.location);
}
else {
console.log("Geocoding failed: " + status);
}
});
}
</script>
Если по какой-то причине вы все еще хотите использовать серверный веб-сервис, вы можете настроить очень простой обратный прокси, возможно используя mod_proxy, если вы используете Apache. Это позволит вам использовать относительные пути для ваших запросов AJAX, в то время как HTTP-сервер будет действовать как прокси-сервер для любого местоположения "remote".
Основной конфигурационной директивой по настройке обратного прокси в mod_proxy является ProxyPass. Обычно вы используете его следующим образом:
ProxyPass /geocode/ http://maps.google.com/maps/api/geocode/
В этом случае браузер может сделать запрос /geocode/output?parameters
, но сервер будет обслуживать это, действуя как прокси-сервер для http://maps.google.com/maps/api/geocode/output?parameters
.