2014-12-03 100 views
2

我想將LatlngBounds對象從客戶端傳遞到nodejs服務器。如何使用javascript將LatlngBounds對象傳遞給nodejs服務器

var bounds = map.getBounds(); 

    socket.emit('sendbounds', bounds); 

在服務器:

socket.on('sendbounds',function(data){ 
    console.log(data); 
    data.getNorthEast();// undefined method getNorthEast() 

    } 

服務器可以從客戶端發送的數據。但是我無法使用方法getNorthEast()。

我的解決方案是創建一個對象的LatLngBounds:

bounds = new google.maps.LatLng(data.Ea.k, data.va.j), 
            new google.maps.LatLng(data.Ea.j, data.va.k)); 

但是不建議這樣做,因爲我們不能確定這些按鍵的名稱總是「EA」和「VA」。 我注意到,有時這些按鍵的名稱是「FA」和WA」,他們是‘無證屬性’。他們改變與API版本。

任何解決方案來解決這個問題呢?

+0

您的客戶的邊界是否包含有效值?在你的服務器中,console.log()打印什麼? – Koh 2014-12-16 17:33:56

回答

1

我嘗試了這種方式,太多,但有同樣的問題:不能依靠變量名

相反,我把它傳遞到服務器作爲字符串,而不是一個對象: corners = map.getBounds(); var c = corners.toString();

然後使用任何AJAX庫發送字符串到服務器。 看起來如此mething這樣的:

((33.94310833405608, -118.44952616442868), (33.985820303992334, -118.34120783557125))

你將不得不選擇它拆開使用正則表達式,但至少它是可靠的格式化。

相關問題