我正在使用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