Мне нужна помощь с jQuery и API Карт Google - PullRequest
2 голосов
/ 06 мая 2011

Я пытаюсь изучить API Карт и Мест Google, поэтому я решил начать с основ: отображения местоположения пользователя на карте через его IP-адрес.

Я нашел jQueryскрипт в другом потоке , который получает широту и долготу пользователя и работает нормально (предупреждение, помещенное ниже переменной, отображает широту и долготу), но когда я передаю переменную в метод Maps, он неРабота.Может кто-то видит что-то не так с моей функцией или как она вызывается?

$.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
function initialize() {  
    var myOptions = {  
      zoom: 8,  
      center: latlng,  
      mapTypeId: google.maps.MapTypeId.ROADMAP  
    };  
    var map = new google.maps.Map(document.getElementById("map_canvas"),  
        myOptions);  
    }  
});

РЕДАКТИРОВАТЬ: Кстати, это сценарии, которые я использую:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
<script language="javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

Ответы [ 2 ]

0 голосов
/ 07 мая 2011

Попробуйте объявить ваш function initialize() вне блока возврата getJSON.

Как это:

$(function(){

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
            var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
            initialize(latlng);
    });
});

function initialize(latlng) {  
    var myOptions = {  
      zoom: 8,  
      center: latlng,  
      mapTypeId: google.maps.MapTypeId.ROADMAP  
    };  
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);  
}  
0 голосов
/ 07 мая 2011

Мне кажется, я знаю, что ты там делал. Похоже, вы используете пример gmaps Hello World для начала.

Если вы заметили, что пример gmaps вызывает функцию initialize для onload элемента карты, то, что вы хотите сделать, - это поместить содержимое вызова getJSON () в функцию initialize, оборачивая исходный код этого функция.

Вот как это выглядит:

function initialize() {  

    $.getJSON('http://api.wipmania.com/jsonp?callback=?', function (data) {  
        var latlng = new google.maps.LatLng(data.latitude,data.longitude);  
        var myOptions = {  
            zoom: 8,  
            center: latlng,  
            mapTypeId: google.maps.MapTypeId.ROADMAP  
        };  
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...