0

我有两个函数initialize()placeMarker()现在发生的事情是,在该initialize方法中,每当页面加载时都会调用它并初始化地图,然后它会向 php 脚本发送请求,该脚本会发送经度和纬度位置作为响应。

脚本的响应是正确的,因为我已使用警报框对其进行了检查。

当我placeMarker从外部调用该函数时,$.each它可以工作。

但是,如果我从内部调用它,$.each则不会放置标记。

function initialize(latitude,longitude)
{
    geocoder = new google.maps.Geocoder();

    //Initial Map Variables
    var mymap={
            zoom:8,
            center:new google.maps.LatLng(latitude,longitude),
            mapTypeId:google.maps.MapTypeId.ROADMAP
        };  

        //Initialize Map
        map=new google.maps.Map(document.getElementById("map_canvas"),mymap);

           //  placeMarker(latitude,longitude);
           //  placeMarker(latitude + 0.2,longitude + 0.2);     When these two are called it places the marker on the map

    $.ajax({
          type: 'GET',
          url: "Profile_Control.php",
          data: "ajaxRequest=yes&id="+document.getElementById("compid").value,
          success:function(data){
             var parsedData= $.parseJSON(data);
            $.each(parsedData,function(){
                placeMarker(this['lat'],this['lng']);           

        //not place the marker on the map.
            });
        }
        }); 
}


//Place the marker and update the array.
function placeMarker(latitude,longitude)
{
    var myLatLng = new google.maps.LatLng(latitude,longitude);

            var marker = new google.maps.Marker({
                    map: map,
                    position:myLatLng,
                }); 
}
4

1 回答 1

-1

尝试

$(parsedData).each(function(j) {
  placeMarker(parsedData[j]['lat'],parsedData[j]['long']);
});
于 2012-05-27T11:30:35.443 回答