2017-05-16 1 views
1

저는 작은 GEO 애플리케이션을 구축 중이며 http://tile38.com/https://www.npmjs.com/package/tile38 노드 모듈을 사용하고 있습니다. 잘 작동하는 모든 노드 모듈에서 NEARBY 쿼리의 결과를 얻을 수 없습니다. 콜백 기능이 작동하지 않는 것처럼 보였습니다. 많은 시간을 보냈지 만 출구를 찾을 수 없었습니다. 내가 원했던 것은 가까운 쿼리로부터 결과를 얻고 변수에 할당하는 것입니다. 여기 Tile38 쿼리 노드 콜백 함수가 작동하지 않습니다.

코드입니다 :

var Tile38 = require('tile38'); 

var client = new Tile38({host: 'localhost', port: 9851, debug: true }); 

// set a simple lat/lng coordinate 
client.set('fleet', 'truck1', [33.5123, -112.2693]) 
// set with additional fields 


client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000).execute((err, results) => { 
    console.log("########"); 
    // this callback will be called multiple times 
    if (err) { 
     console.error("something went wrong! " + err); 
    } else { 
     console.log(results + "##########"); 
    } 
});; 

하지만 다음과 같은 간단한 쿼리를 할 때 그것을 잘 일하고있어.

client.get('fleet', 'truck1').then(data => { 
    console.log(data); // prints coordinates in geoJSON format 

}).catch(err => { 
    console.log(err); // id not found 
}); 

또한 타일 38-cli에서 RAW 쿼리를 시도하면 문제가 없습니다.

NEARBY fleet POINT 33.5123 -112.2693 6000 

아무 도움이됩니다.

미리 감사드립니다.

편집 나는 다음을 시도했지만 작동하지 않았습니다.

let query = client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000) 
query.execute().then(data => { 
      console.dir(results); // results is an object. 
    })) 

답변

1

다음

let query = client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000) 
query.execute(function(results).then(results => { 
      console.dir(results); // results is an object. 
    })) 

나는 다음과 같은 코드가 작동하고 있음을 발견했다. 이 작업에 문제가 생겨서 죄송합니다. 나는 당신을 쫓아 버린 readme에서 오타를 발견했습니다. 나는 이것을 바로 잡을 것이다.

실행]()의 예는

query.execute().then(results => { 
    console.dir(results); 
}); 

대신

query.execute(function(results).then(results => { 
    console.dir(results); 
}); 

을 언급해야 (이미 알아 냈로) 방법은 약속 반환하고,
2

여기 Tile38에 대한 노드 라이브러리의 저자 : 수신 오랜 시간 디버깅 후 오류

query.execute(function(results).then(results => { 
            ^
SyntaxError: Unexpected token .