Javascript 将JSON加载到时间映射中

Javascript 将JSON加载到时间映射中,javascript,json,google-maps,Javascript,Json,Google Maps,我想将JSON加载到时间映射中,而我的代码似乎缺少正确配置JSON的内容。JSON格式如下 {“结果”:[{“Lat”:“34.0453113”,“文本”:“历史核心DTLA”, “Lon”:“-118.2501836”,“bicyclistCount”:“26”,“date”:“2014-10-15”}, {“Lat”:“34.0444899”,“text”:“Spring@7”,“Lon”:“-118.2523059”, “自行车计数”:“16”,“日期”:“2014-10-26”}] 它包

我想将JSON加载到时间映射中,而我的代码似乎缺少正确配置JSON的内容。JSON格式如下

{“结果”:[{“Lat”:“34.0453113”,“文本”:“历史核心DTLA”, “Lon”:“-118.2501836”,“bicyclistCount”:“26”,“date”:“2014-10-15”}, {“Lat”:“34.0444899”,“text”:“Spring@7”,“Lon”:“-118.2523059”, “自行车计数”:“16”,“日期”:“2014-10-26”}]

它包含主要基于时间映射的html文件。它会打开时间线和地图,但不会加载数据。此外,虽然我想先解决JSON加载问题,但映射不会放大和缩小。你对我能改变什么有什么建议吗?在下面添加JavaScript代码。谢谢,帕蒂

JavaScript代码:

var tm;
var errFn = function(jqXHR, textStatus, errorThrown){
  alert(textStatus);
  }

$(function() {

tm = TimeMap.init({
    mapId: "map",               // Id of map div element (required)
    timelineId: "timeline",     // Id of timeline div element (required) 
    options: {
        eventIconPath: "../images/"
    },
    datasets: [
        {
            title: "JSON String Dataset",
            type: "json",

            options: {
                // json file
                url: "output.json", <!--this file sits in the same folder as the HTML-->
                error: errFn,
            }
        }
    ], 

  bandIntervals: [
         Timeline.DateTime.DAY, 
         Timeline.DateTime.WEEK
     ]
  });

    <!--start loading data-->
        function transformData(data) {      
      var text, Lat, Lon, bicyclistCount, date; <!--is this how the data is called?-->

    var newData = {
    "title" : text,
    "start" : date,

    "options" : {
        "description" : bicyclistCount
    }
};
newData["point"] = { 
   "lat" : Lat,
    "lon" : Lon,
};            
}
});
<!--end loading data-->
var-tm;
var errFn=函数(jqXHR、textStatus、errorshown){
警报(文本状态);
}
$(函数(){
tm=TimeMap.init({
mapId:“map”//map div元素的Id(必需)
timelineId:“timeline”//timeline div元素的Id(必需)
选项:{
eventIconPath:“../images/”
},
数据集:[
{
标题:“JSON字符串数据集”,
键入:“json”,
选项:{
//json文件
url:“output.json”,
错误:errFn,
}
}
], 
波段间隔:[
Timeline.DateTime.DAY,
Timeline.DateTime.WEEK
]
});
函数转换数据(数据){
变量文本、Lat、Lon、bicyclistCount、日期;
var newData={
“标题”:文本,
“开始”:日期,
“选择”:{
“说明”:自行车计数
}
};
新数据[“点”]={
“lat”:lat,
“lon”:lon,
};            
}
});

我在您的页面上看到一个javascript错误:
未捕获类型错误:未定义不是一个函数:
数据。forEach(函数(项)

数据是一个对象,而不是数组

Object
results: Array[10]
将您的JSON更改为:

{"results": [{"Lat": "34.0453113", "text": "Historic Core DTLA", "Lon": "-118.2501836", "bicyclistCount": "26", "date": "2014-10-15"}, {"Lat": "34.0444899", "text": "Spring @ 7", "Lon": "-118.2523059", "bicyclistCount": "16", "date": "2014-10-26"}]}
致:


(将其设置为数组,而不是将数组作为其“results”属性的对象)

如果不想更改json,请定义自定义加载程序并配置Timemap以使用它

$(function() {

TimeMap.loaders.custom = function(options) {
    var loader = new TimeMap.loaders.remote(options);
    loader.parse = JSON.parse;
    loader.preload = function(data) {
        return data["results"]
    }
    loader.transform = function(data) {
        return {
            "title" : data.text,
             "start" : data.date,
            "options" : {
            "description" : data.bicyclistCount
        },
        "point": { 
            "lat" : data.Lat,
            "lon" : data.Lon,
            }
        };
    };
    return loader;
};

tm = TimeMap.init({
    mapId: "map",               // Id of map div element (required)
    timelineId: "timeline",     // Id of timeline div element (required) 
    options: {
        eventIconPath: "../images/"
    },
    datasets: [
        {
            title: "JSON String Dataset",
            type: "custom",

            options: {
                // json file
                url: "output.json"
            }
        }
    ], 

 bandIntervals: [
        Timeline.DateTime.DAY, 
        Timeline.DateTime.WEEK
    ]
});
});

将JSON格式更改为:

[
  {
    "title":"example",
    "start":"1968-10-12",
    "end": "1968-11-12",
  }

]

您是否查看了错误日志控制台我在您的页面上看到一个javascript错误:
uncaughttypeerror:undefined不是一个函数:
data.forEach(function(item)
谢谢,我没有提到它,但是如果不需要更改JSON就更好了。它现在可以工作了!
[
  {
    "title":"example",
    "start":"1968-10-12",
    "end": "1968-11-12",
  }

]