jQuery $ .ajax GET URL и геокодирование Google - PullRequest
0 голосов
/ 07 сентября 2010

У меня есть XML-файл, содержащий URL-адреса для запросов геокодирования в Google.Я хочу перебрать файл, получить URL-адрес (а затем и имя сайта ... по одному шагу за раз) и отправить запрос геокодирования в Google, чтобы получить лат и lng из ответа.У меня проблемы с моим запросом $ .ajax GET.Может ли параметр URL быть просто значением в массиве, который содержит мои ссылки?Смотрите мой код ниже.Спасибо за вашу помощь!

$(document).ready(
  function() {

    $locArray = new Array();
    $coorsArray = new Array();

    $.ajax({
        type: 'GET',
        url: 'data.xml', 
        dataType: 'xml',
        success: function(d){


            $(d).find('record').each(function(){

                var $record = $(this);
                var site = $record.find('site_name').text();
                var $maplink = $record.find('maplink').text();


                $locArray.push($maplink);           

             })

             $($locArray).each(
               function() {
                 $.ajax({
                    type: 'GET',
                    url: this,
                    dataType: 'xml',
                    success: function(d) {
                        $(d).find('location').each(function() {
                            var $location = $(this);
                            var $latcoor = $location.find('lat').text();
                            var $longcoor = $location.find('lng').text();
                            var $fullcoors = $latcoor + ", " + $longcoor;

                            console.log($latcoor);

                            $coorsArray.push($fullcoors);
                            //console.log($coorsArray);

                        })

                        $($coorsArray).each(
                          function(){
                            $('ul').append("<li>" + this + "</li>\n");
                          })

                    }
                 })
               }
             ); 



          } 


      });

});

Ответы [ 2 ]

3 голосов
/ 07 сентября 2010

Вы не можете инициировать запрос AJAX для домена, отличного от вашего собственного. Это для предотвращения XSS-атак. См. Одинаковая политика происхождения .

Если вы хотите получать данные от Google, либо установите прокси-сервер в своем домене, который отражает ответ Google, либо из-за запроса непосредственно на вашем сервере.

Кроме того, поскольку кажется, что вы геокодируете один и тот же список URL-адресов, почему бы просто не геокодировать их и не кешировать результат?

Google ранее поддерживал JSONP, но из-за злоупотребления поддержка JSONP была прекращена .

1 голос
/ 13 сентября 2010

При использовании API V3 map это выглядит довольно просто ... междоменный домен не является проблемой, так как Google работает с запросами JSON ... Вот фрагмент из недавнего кода, он должен дать вам несколько указателей, где искать в Googleкарта api.

var $search = jQuery('input#adresse');
var geocoder = new google.maps.Geocoder();
var Lat;
var Lng;
function addressSearcher(){
    if (geocoder) {
        inprogress = true;
        geocoder.geocode( { 
            address: $search.val()
        },function(results, status){        
            if ( status == google.maps.GeocoderStatus.OK
                 && results.length < 3
                 && results[0].types[0] == 'street_address' ){
                var loc = results[0].geometry.location;     
                Lat = loc.b;
                Lng = loc.c;
                $search.val(results[0].formatted_address);
            }
        })
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...