我正在尝试使用PhoneGap进行Web应用程序,因此我使用的是Javascript,HTML5和CSS3等Web语言。我有一个谷歌地图API,所以我想从网站上填充几个坐标点和一些实时信息。
我到目前为止的代码如下:
function initialize() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 12,
center: new google.maps.LatLng(55.940937, -3.191612),
// center: {lat: -28, lng: 137}
mapTypeId: google.maps.MapTypeId.ROADMAP,
});
function getResults(){
var headers = document.getElementsByTagName('th');
var data = document.getElementsByTagName('td');
var results = [];
for(var i = 0; i < data.length; i += headers.length) {
var item = {};
for(var j = 0; j < headers.length; j++) {
item[ headers[j].textContent.trim() ] = data[i + j].textContent.trim();
}
results.push(item);
};
return results;
}
console.log(getResults());
jsonString = JSON.stringify(getResults());
function callback(results, status) {
if(status == google.maps.places.PlaceServiceStatus.OK){
for (var i = 0; i < results.length; i++){
var place = results[i];
console.log(place.name);
console.log(place.value);
console.log(types[0]);
createMarker(results[i]);
}
}
}
setInterval(function($.ajax({
url: "http://edinburgh.cdmf.info/public/carparks/list.htm?callback",
data: getResults(),
type: 'GET',
dataType: "jsonp",
//add_header: Acess-Control-Allow-Origin *
success: function(data){
//Update the script
script.setValue(data.value);},
error: function() {alert('Failed');},
beforeSend: setHeader
});
,30000)
function setHeader(xhr){
xhr.setRequestHeader('Authorization', results);
}
var trafficLayer = new google.maps.TrafficLayer();
trafficLayer.setMap(map);
}
和HTML
</head>
<body onload="initialize()">
<h1>Welcome to SmartParking</h1>
<div id="map"></div>
<iframe src="https://www.google.com/maps/d/embed?mid=198X7G-KU3xan5zrG0EtQ63Guojo" width="640" height="480"></iframe>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
所以基本上getResults()方法会转到网站tablesorter并将td信息提取到JSON文件中。
我是网络技术的新手,真的不知道我是否可以这样做,因为我一直有错误的空数组。
我在实际的网站元素Inspector控制台Console answer to getResults()上尝试过GetResuts函数,它的工作原理让我回到了包含所有信息的Object Array
答案 0 :(得分:0)
您需要做的是重新构建代码。
首先,您需要在HTML like so.
中创建<form>
元素
接下来,您必须设置服务器。无论何时调用API并获取数据,都应该在服务器上处理,而不是像在前端那样在前端处理。基本上,您将表单数据发送到后端,后端发送带有该数据的api调用,并将api数据返回到前端。
最后,如果你想要实时更新,你不想setInterval ajax调用 - 这是一个非常常见的错误,实际上,请阅读它here。该链接还描述了&#34;彗星民意调查&#34; (facebook使用)但你应该考虑使用某种Websockets连接,例如socket.io和Node.js,这很容易设置。
祝你好运!