我,使用PostgreSQL 9.1的PostGIS 2.0米,0.10.12的NodeJS和節點的PG模塊的最新版本。POSTGIS與node.js的近鄰
我在服務器端使用websockets。我有兩個功能。根據來自用戶的數據,我稱之爲正確的功能。
第一功能是簡單SELECT
,做工精細。
第二試圖找到最接近5個的給定幾何形狀的鄰居(也可以是點或線或多邊形)。不起作用。我爲最近的鄰居查詢嘗試了不同的語法,但仍然沒有。
什麼可能是錯的?查詢?我在想也許pg模塊不支持ST_DWithin
函數。
這裏是近鄰功能
function checkMapIn(je){
var conString = "pg://username:[email protected]:5432/myDB";
var client = new pg.Client(conString);
client.connect();
//je came from client, is a geometry he just inserted in the map
var query = client.query('SELECT pins.p_name FROM pins ORDER BY pins.p_geom <-> '+je+' LIMIT 5')
//alternative syntax I tried
//SELECT pins.p_name FROM pins INNER JOIN pins ON ST_DWithin('+je+', pins.p_geom, 1000) LIMIT 5
//SELECT pins.p_name FROM pins WHERE ST_DWithin('+je+', pins.p_geom, 1000) LIMIT 5
query.on("row", function (row, result) {
result.addRow(row);});
query.on("end", function (result) {
console.log(JSON.stringify(result.rows, null, " "));
for (var i=0; i<result.rows.length; i++){
connection.send(result.rows[i].p_name+'</br>')
}
client.end();
});
}
的代碼,這是我的錯誤,不管我怎麼編輯查詢
events.js:72
throw er; // Unhandled 'error' event
^
error: syntax error at or near "["
at Connection.parsE (C:\Program Files (x86)\nodejs\node_modules\pg\lib\connection.js:526:11)
at Connection.parseMessage (C:\Program Files (x86)\nodejs\node_modules\pg\lib\connection.js:371:17)
at Socket.(anonymous) (C:\Program Files (x86)\nodejs\node_modules\pg\lib\connection.js:86:20)
at Socket.EventEmitter.emit (events.js:95:17)
at Socket.(anonymous) (_stream_readable.js:736:14)
at Socket.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:156:9)
at Spcket.Readable.push (_stream_readable.js:127:10)
任何建議的synatx?提示?
預先感謝
斯萊文
EDIT
這裏是 'JE' 變量的示例值,如 「badsyntax」 問。 [object Object]
我得到這個,如果我設置connection.send('</br>'+je+'</br>')
。
而且,這是我從客戶端的OpenLayers和我發送到服務器得到什麼。 POINT(2332239.3475 4729773.7440625)
奇怪... 在客戶端我用的OpenLayers得到剛插入地圖上的特徵的幾何形狀。
你可以發佈'je'變量的示例值嗎? – badsyntax
@badsyntax我剛剛編輯了這個問題。謝謝 – slevin
我對postGIS一無所知,但是您是否曾嘗試在cli上通過psql在postgres中運行該查詢?這樣調試可能會更容易... – badsyntax