我有两个函数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,
});
}