我正在使用websockets将数据从服务器发送到客户端。这可以正常工作,例如我可以显示服务器收到时发送给客户端的消息。 我可以将其转换为经度和纬度。使用实时数据更新热图
因此,从服务器接收数据时,它应该在我的html中绘制到地图上,但它似乎并未绘制任何图形。
我完全不熟悉javascript,所以不确定我的代码是否正确。我最想做的就是很快收到数据,它会直接绘制到地图上,从而生成热图。这是代码的JavaScript端:
<script>
$(document).ready(function() {
var ws = new WebSocket("ws://" + "localhost" + ":" + "8888" + "/ws");
var London = new google.maps.LatLng(51.507335, -0.127683);
var map = new google.maps.Map(document.getElementById('map_canvas'), {
center: London,
zoom: 3,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var pointArray = new google.map.MVCArray([]);
ws.onmessage = function(evt){
//$("#display").append(evt.data + "<br />");
var msg = JSON.parse(evt.data);
var coordinates = msg.coordinates.coordinates;
var latLng = new google.maps.LatLng(coordinates[1], coordinates[0]);
console.log('received');
pointArray.push(latLng);
var heatmap = new google.maps.visualization.HeatmapLayer({
data: pointArray
});
heatmap.setMap(map);
//$("#display").append(latLng + "<br />");
//console.log(evt.data);
};
ws.onclose = function(evt) {alert("Server connection terminated");};
});
$("#open").click(function(evt){
evt.preventDefault();
$.post("/", $("#eventForm").serialize());
});
</script>
会不会有一种方法,使数据被接收它存储到一个数组,但后来我不知道怎么那么我可以将元素在更新地图数组已经收到。 感谢
请详细说明您遇到的具体问题。附加有关该问题的更多相关信息,例如来自控制台的错误消息。 stackoverflow不是一个调试服务。 –
Web控制台上没有错误消息。具体的问题是,我收到的坐标数据很好,但是没有被绘制到JavaScript代码中的地图上。 – user94628
为什么为每次点击设置一个新的Websocket连接? – ManseUK