Javascript 标记未显示在多条多段线上 函数disp_initialize() { var bike=; $.ajax({ “数据类型”:“json”, “类型”:“职位”, “url”:“home.php?bike_id=“+bike, 成功:函数(数据){ if(data.sMsg==0) { $(“#地图画布”).hide(); } else if(data.sBlankMsg==0){ $(“#地图画布”).hide(); } 其他的 { 初始化(数据); } } }); } 函数初始化(飞行平面坐标\u arr) { var flightPlanCoordinates_arr=flightPlanCoordinates_arr.mapData; var flightPlanCoordinates_arr_p=新数组(); var j=0;var k=0; var store=新数组(); 用于(飞行平面坐标_arr中的变量i) { 如果(j==0) { 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++; } else if(flightPlanCoordinates_arr_p[j-1]['state']==1和&flightPlanCoordinates_arr[i]['state']==0) { 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++; } else if(flightPlanCoordinates_arr_p[j-1]['state']==0和&flightPlanCoordinates_arr[i]['state']==1) { 存储[k]=j; 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++;k++; } } //控制台日志(存储); var flightPlanCoordinates=新数组(); 用于(飞行平面坐标中的变量i\u arr\p) { flightPlanCoordinates[i]=新的google.maps.LatLng(flightPlanCoordinates_arr_p[i][“纬度”]、flightPlanCoordinates_arr_p[i][“经度”]; } 如果(飞行平面坐标_arr!='') { 变量映射选项={ 缩放:10, 中心:新的google.maps.LatLng(飞行平面坐标[0][“纬度”],飞行平面坐标[0][“经度”]), mapTypeId:google.maps.mapTypeId.TERRAIN }; } var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions); 变量颜色=[“FF0000”、“00FF00”、“0000FF”、“FFFFFF”、“000000”、“FFFF00”、“00FFFF”、“FF00FF”]; 对于(var i=0;i

Javascript 标记未显示在多条多段线上 函数disp_initialize() { var bike=; $.ajax({ “数据类型”:“json”, “类型”:“职位”, “url”:“home.php?bike_id=“+bike, 成功:函数(数据){ if(data.sMsg==0) { $(“#地图画布”).hide(); } else if(data.sBlankMsg==0){ $(“#地图画布”).hide(); } 其他的 { 初始化(数据); } } }); } 函数初始化(飞行平面坐标\u arr) { var flightPlanCoordinates_arr=flightPlanCoordinates_arr.mapData; var flightPlanCoordinates_arr_p=新数组(); var j=0;var k=0; var store=新数组(); 用于(飞行平面坐标_arr中的变量i) { 如果(j==0) { 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++; } else if(flightPlanCoordinates_arr_p[j-1]['state']==1和&flightPlanCoordinates_arr[i]['state']==0) { 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++; } else if(flightPlanCoordinates_arr_p[j-1]['state']==0和&flightPlanCoordinates_arr[i]['state']==1) { 存储[k]=j; 飞行平面坐标_arr_p[j]=飞行平面坐标_arr[i]; j++;k++; } } //控制台日志(存储); var flightPlanCoordinates=新数组(); 用于(飞行平面坐标中的变量i\u arr\p) { flightPlanCoordinates[i]=新的google.maps.LatLng(flightPlanCoordinates_arr_p[i][“纬度”]、flightPlanCoordinates_arr_p[i][“经度”]; } 如果(飞行平面坐标_arr!='') { 变量映射选项={ 缩放:10, 中心:新的google.maps.LatLng(飞行平面坐标[0][“纬度”],飞行平面坐标[0][“经度”]), mapTypeId:google.maps.mapTypeId.TERRAIN }; } var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions); 变量颜色=[“FF0000”、“00FF00”、“0000FF”、“FFFFFF”、“000000”、“FFFF00”、“00FFFF”、“FF00FF”]; 对于(var i=0;i,javascript,php,google-maps,google-maps-api-3,Javascript,Php,Google Maps,Google Maps Api 3,mapData是一个JSON响应,它提供“纬度”、“经度”、“速度”、“状态”、“位置”值 我已经为横向和纵向绘制了多段线,但是没有显示标记。得到这个错误 TypeError:f未定义我对您的设计不太清楚 如果您想让标记在mouseout事件侦听器中可见,则必须提供映射值。例如: function disp_initialize() { var bike=<?php echo $_GET['bike_id']; ?>; $.ajax({ "data

mapData是一个JSON响应,它提供“纬度”、“经度”、“速度”、“状态”、“位置”值

我已经为横向和纵向绘制了多段线,但是没有显示标记。得到这个错误
TypeError:f未定义

我对您的设计不太清楚

如果您想让标记在
mouseout
事件侦听器中可见,则必须提供映射值。例如:

function disp_initialize() 
{

  var bike=<?php echo $_GET['bike_id']; ?>;  
  $.ajax({
          "dataType": "json",
          "type": "POST",
          "url": "home.php?bike_id="+bike,
            success: function(data) { 
            if(data.sMsg==0)
            {
               $("#map-canvas").hide();
            }
            else if(data.sBlankMsg==0){
               $("#map-canvas").hide();
            }
            else
            {
                initialize(data);
            }
        }
  });    
}     

function initialize(flightPlanCoordinates_arr) 
    {
        var flightPlanCoordinates_arr = flightPlanCoordinates_arr.mapData;

        var flightPlanCoordinates_arr_p = new Array();
        var j = 0;var k = 0;
        var store = new Array();
        for(var i in flightPlanCoordinates_arr)
        {
            if(j==0)
            {
                flightPlanCoordinates_arr_p[j] = flightPlanCoordinates_arr[i];
                j++;
            }
            else if(flightPlanCoordinates_arr_p[j-1]['state']==1 && flightPlanCoordinates_arr[i]['state']==0)
            {
                flightPlanCoordinates_arr_p[j] = flightPlanCoordinates_arr[i];
                j++;
            }
            else if(flightPlanCoordinates_arr_p[j-1]['state']==0 && flightPlanCoordinates_arr[i]['state']==1)
            {
                store[k]=j;
                flightPlanCoordinates_arr_p[j] = flightPlanCoordinates_arr[i];
                j++;k++;
            }
        }

        //console.log(store);
        var flightPlanCoordinates = new Array();
        for(var i in flightPlanCoordinates_arr_p)
        {
            flightPlanCoordinates[i] = new google.maps.LatLng(flightPlanCoordinates_arr_p[i]["latitude"],flightPlanCoordinates_arr_p[i]["longitude"]);
        }

        if(flightPlanCoordinates_arr != '')
        {
            var mapOptions = {
                zoom: 10,
                center: new google.maps.LatLng(flightPlanCoordinates_arr[0]["latitude"],flightPlanCoordinates_arr[0]["longitude"]),
                mapTypeId: google.maps.MapTypeId.TERRAIN
            };
        }
        var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
            var Colors = ["#FF0000", "#00FF00", "#0000FF", "#FFFFFF", "#000000", "#FFFF00", "#00FFFF", "#FF00FF"];

            for (var i = 0; i < flightPlanCoordinates.length; i++) 
            {   
                if(jQuery.inArray(i+1,store)===-1)
                {
                    var colour = Colors[i];
                    var flightPath = new google.maps.Polyline({
                        path: [flightPlanCoordinates[i], flightPlanCoordinates[i+1]],
                        geodesic: true,
                        strokeColor: '#FFFF00',
                        strokeOpacity: 2.0,
                        strokeWeight: 10,
                        map: map
                    });
                }

            }        
            flightPath.setMap(map);
        var location = "";
        var location_details = "";
            var speed="";

            for(var i in flightPlanCoordinates_arr)
            {

                location = flightPlanCoordinates_arr[i]["location"];
                location_details = flightPlanCoordinates_arr[i]["location_details"];
                speed = flightPlanCoordinates_arr[i]["speed"]; 

                var marker = new google.maps.Marker({
                    position: new google.maps.LatLng(flightPlanCoordinates_arr[i]["latitude"],flightPlanCoordinates_arr[i]["longitude"]),
                    map: map
                });
                marker.setIcon('images/bike.png');
                }

        new google.maps.event.addListener(flightPath, 'mouseover', function(event) {
                var populationOptions = {
                strokeColor: '#11C111',
                strokeOpacity: 0.8,
                strokeWeight: 4,
                fillColor: 'transparent',
                fillOpacity: 4,
                map: map,
                center: event.latLng,
                position: event.latLng,
                radius: 40
            };
            // Add the circle for this city to the map.
            cityCircle = new google.maps.Circle(populationOptions);
            attachSecretMessage(marker, contentHtml,map);
        });

        new google.maps.event.addListener(flightPath, 'mouseout', function(event) {
            var marker = new google.maps.Marker({
                position: event.latLng,
            });
            // Add the circle for this city to the map.
            cityCircle.setMap(null);
        });
    }
    function attachSecretMessage(marker, contentHtml, map) {

            var infowindow = new google.maps.InfoWindow({
            position: marker.position,
            content: contentHtml
        });
        google.maps.event.addListener(marker, 'mouseover', function() {
          infowindow.open(map);
        });
        google.maps.event.addListener(marker, 'mouseout', function() {
          infowindow.close();
        });
    }
在这种情况下,您必须使
map
global。目前它是在函数
initialize()
中本地定义的。因此:

    var marker = new google.maps.Marker({
        position: event.latLng,
        map: map
    });
此外,这似乎是
for
循环

var map;

function initialize(flightPlanCoordinates_arr) {
...
    map = new google.maps.Map(document.getElementById('map'), mapOptions);
...
}
for(var i=0;i
应初始化为:

for (var i = 0; i < flightPlanCoordinates.length; i++) {   
for(var i=0;i
更新:看。这是我能得到的最好结果,因为我不理解某些变量检查的全部逻辑。如果你设置prober-ico
for (var i = 0; i < flightPlanCoordinates.length - 1; i++) {