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
mapData是一个JSON响应,它提供“纬度”、“经度”、“速度”、“状态”、“位置”值 我已经为横向和纵向绘制了多段线,但是没有显示标记。得到这个错误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
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++) {