Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置图表,API可视化谷歌地球_Javascript_Google Maps_Charts_Google Visualization - Fatal编程技术网

Javascript 重置图表,API可视化谷歌地球

Javascript 重置图表,API可视化谷歌地球,javascript,google-maps,charts,google-visualization,Javascript,Google Maps,Charts,Google Visualization,我正在开发一个应用程序,从gpx文件显示路线的高程。我使用谷歌的API可视化来绘制结果,特别是我使用的是柱形图 当我读取一条路线时,图表显示正确,但当我读取第二条gpx时,图表同时显示两条路线,以此类推。我只想显示一条路线,当我绘制一条路线时,如何重置图表 以下是所有代码: //Variables var map=null; var poly; var rutaActual; var chart; var mousemarker = null; var results={"latitud": [

我正在开发一个应用程序,从gpx文件显示路线的高程。我使用谷歌的API可视化来绘制结果,特别是我使用的是柱形图

当我读取一条路线时,图表显示正确,但当我读取第二条gpx时,图表同时显示两条路线,以此类推。我只想显示一条路线,当我绘制一条路线时,如何重置图表

以下是所有代码:

//Variables
var map=null;
var poly;
var rutaActual;
var chart;
var mousemarker = null;
var results={"latitud": [], "longitud": [],"elevacion": []};

google.maps.event.addDomListener(window, 'load', initialize);

google.load("visualization", "1", {packages: ["columnchart"]});
google.setOnLoadCallback(initialize);


/**
*   Inicializar Google Maps
*/
function initialize() {

var myLatlng = new google.maps.LatLng(43.373112,-5.669632);

var mapOptions = {
            zoom: 9,
            center: myLatlng,
            mapTypeControl: false,
            mapTypeId: google.maps.MapTypeId.TERRAIN,
            mapTypeControlOptions: {
                style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
              },

              zoomControlOptions: {
                    position: google.maps.ControlPosition.LEFT_CENTER
                },

                panControlOptions: {
                    position: google.maps.ControlPosition.LEFT_CENTER
                }

    };


  map = new google.maps.Map(document.getElementById('mapa'),mapOptions);

  inicializarElevacionMaps();     

}


function inicializarElevacionMaps(){

chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));

  google.visualization.events.addListener(chart, 'onmouseover', function(e) {

      if (mousemarker == null) {
          mousemarker = new google.maps.Marker({
          position: new google.maps.LatLng(results.latitud[e.row],results.longitud[e.row]),
          map: map,
          icon: "http://maps.google.com/mapfiles/ms/icons/green-dot.png"
        });
      } else {
        mousemarker.setPosition(new google.maps.LatLng(results.latitud[e.row],results.longitud[e.row]));
      }


    });
}


/**
*   Cargar rutas GPX
*/
function rutaGPX(nombre){

rutaActual = nombre;

if(poly){

    poly.setMap(null);

}

iCl.ajax({
    type: "GET",
    url: "rutas/ficheros_gpx/"+nombre+".gpx",
    dataType: "xml",
    success: function (xml) {

         var points = [];
         poly = new google.maps.Polyline();
         var bounds = new google.maps.LatLngBounds();
         iCl(xml).find("trkpt").each(function () {
              var lat = iCl(this).attr("lat");
              var lon = iCl(this).attr("lon");
              var ele = iCl(this).find("ele").text();
              var p = new google.maps.LatLng(lat, lon);
              points.push(p);
              bounds.extend(p);
              results.latitud.push(lat);
              results.longitud.push(lon);
              results.elevacion.push(ele);

         });

         poly = new google.maps.Polyline({
              // use your own style here
              path: points,
              strokeColor: "#FE2E2E",
              strokeOpacity: .7,
              strokeWeight: 4
         });

         poly.setMap(map);
         map.fitBounds(bounds);

         //Draw chart
         plotElevation(results);

    }
   });


}

//Takes an array of ElevationResult objects, draws the path on the map
// and plots the elevation profile on a ColumnChart

function plotElevation(results) {
  var elevations=[];

  elevations = results.elevacion;

  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Sample');
  data.addColumn('number', 'Elevation');
  for (var i = 0; i < elevations.length; i++) {
    data.addRow(['', parseInt(elevations[i])]);
  }

  document.getElementById('chart_div').style.display = 'block';
  chart.draw(data, {
    width: 512,
    height: 200,
    legend: 'none',
    titleY: 'Elevation (m)',
    focusBorderColor: '#00ff00'
  });
}
//变量
var-map=null;
var-poly;
var rutaActual;
var图;
var mousemarker=null;
var结果={“纬度”:[],“经度”:[],“海拔”:[];
google.maps.event.addDomListener(窗口“加载”,初始化);
load(“可视化”、“1”、{packages:[“columnchart”]});
setOnLoadCallback(初始化);
/**
*Inicializar谷歌地图
*/
函数初始化(){
var mylatng=newgoogle.maps.LatLng(43.373112,-5.669632);
变量映射选项={
缩放:9,
中心:myLatlng,
mapTypeControl:false,
mapTypeId:google.maps.mapTypeId.TERRAIN,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单,
},
ZoomControl选项:{
位置:google.maps.ControlPosition.LEFT_CENTER
},
全控选项:{
位置:google.maps.ControlPosition.LEFT_CENTER
}
};
map=new google.maps.map(document.getElementById('mapa'),mapOptions);
InializationRelevanceMaps();
}
函数InializationRelevanceMaps(){
chart=新的google.visualization.ColumnChart(document.getElementById('chart_div'));
google.visualization.events.addListener(图表'onmouseover',函数(e){
if(鼠标标记器==null){
mousemarker=new google.maps.Marker({
位置:new google.maps.LatLng(results.latitud[e.row],results.longitud[e.row]),
地图:地图,
图标:“http://maps.google.com/mapfiles/ms/icons/green-dot.png"
});
}否则{
mousemarker.setPosition(新的google.maps.LatLng(results.latitud[e.row],results.longitud[e.row]);
}
});
}
/**
*Cargar rutas GPX
*/
函数rutaGPX(nombre){
rutaActual=标称值;
如果(多边形){
poly.setMap(空);
}
iCl.ajax({
键入:“获取”,
url:“rutas/ficheros_gpx/”+nombre+“.gpx”,
数据类型:“xml”,
成功:函数(xml){
var点=[];
poly=新的google.maps.Polyline();
var bounds=new google.maps.LatLngBounds();
iCl(xml).find(“trkpt”).each(函数(){
var lat=iCl(本).attr(“lat”);
var lon=iCl(this).attr(“lon”);
var ele=iCl(this.find(“ele”).text();
var p=新的google.maps.LatLng(lat,lon);
点推(p);
扩展(p);
结果:横向推力(lat);
结果:纵向推力(lon);
结果:升降推(ele);
});
poly=新的google.maps.Polyline({
//在这里使用你自己的风格
路径:点,
strokeColor:“Fe2e”,
冲程不透明度:.7,
冲程重量:4
});
poly.setMap(map);
映射边界(bounds);
//绘制图表
绘图高程(结果);
}
});
}
//获取ElevationResult对象数组,在地图上绘制路径
//并在柱形图上绘制高程纵断面
功能图高程(结果){
风险值=[];
高程=结果。高程;
var data=new google.visualization.DataTable();
data.addColumn('string','Sample');
data.addColumn('编号','标高');
对于(变量i=0;i

这里是一幅

的图像,我认为最简单的方法是执行以下操作:

var chart = app.getElementById('chart_div');
chart.clearChart(); 
在InicializaRelevationMaps()中实例化图表之前


请参阅:

我从htmlI调用函数“rutaGPX”以找到解决方案。在函数“rutaGP”的开头,我放了:if(results.elevation){results.elevation=[];}现在可以正常工作了。谢谢大家。