2

좌표가 융합 표층 안에 있는지 확인하는 방법이 있습니까? 나는 자체 개발 한 몇 가지 방법으로이 작업을 시도했지만 테스트중인 위치의 약 6 %가 잘못된 결과를 반환하고 있습니다. 결과 중 하나는 스코틀랜드에 글래스고가 없다는 것입니다.다각형에 좌표가 있는지 확인하기 위해 융합 표 쿼리하기

this Fusion Table을 쿼리하고 글래스고가 스코틀랜드에 있는지 물어볼 수 있습니까? 가급적이면 부울 값을 반환하는 것이 좋습니다.

  1. 글래스고 좌표 : 55.855513, -4.252649
  2. 스코틀랜드 쿼리 Geometry where ‘NAME’ = ‘Scotland’
  3. KML 열 : Geometry
  4. 퓨전 테이블 ID : 1d5LmqKYvkTDxmYK3-9-aQLNz3Z0QAEwqHusAm5w

은 내가 ST_CONTAINS 또는 ST_INTERSECTS을 사용한다고 생각하지만 난 ' 그들이 어떻게 다각형 모양으로 작업하는지 모르겠습니다.

당신이 FusionTablesAPI를 사용하여 다각형의 이름을 얻을 수 주어진 대답 쿼리를 사용하여 전체 솔루션

.

lat = 55.855513 
lng = -4.252649 
table = '1d5LmqKYvkTDxmYK3-9-aQLNz3Z0QAEwqHusAm5w' 
query = "SELECT NAME FROM #{table} WHERE ST_INTERSECTS(geometry, CIRCLE(LATLNG(#{lat}, #{lng}),1))" 
url = "https://www.googleapis.com/fusiontables/v1/query?sql=#{URI.encode(query)}&key=AIzaSyAm9yWCV7JPCTHCJut8whOjARd7pwROFDQ" 

Here is the output.

이 내가 찾아 밖으로 설정보다 실제로 더 나은 솔루션입니다

.

주어진 답변의 코드를 사용하면 멋진지도의 폴리곤이 강조 표시됩니다. 또한 postgres도 Dr.Molle의 의견에 따라 사용할 수 있습니다.

+1

은 불행하게도 당신이하지, 현재 퓨전 테이블에'ST_INTERSECTS'은 다시 감사를 사각형으로 작동하고 –

+0

안녕 Dr.Molle 서클 수 있습니다! 이 작업을 수행하는 최선의 대안 방법을 알고 있습니까? 알고리즘을 조정하지 않고. Execjs를 사용하여 서버에서 Google Maps를 컴파일 한 다음 containsLocation()을 실행하려고합니다. 하지만 KML을 다각형으로 변환해야하므로 전체 프로세스가 다소 미친 것처럼 보입니다. 더 나은 방법이 있어야합니다 ... – Dol

+0

죄송합니다. 아마 별개의 질문입니다 .. 도와 주셔서 다시 한번 감사 드리며, 다른 날도 도와주세요 :) – Dol

답변

3

는이 (FusionTableLayer 예)과 같이 수행 할 수

 layer = new google.maps.FusionTablesLayer({ 
      query: { 
      select: 'geometry', 
      from: tableId, 
      where: 'ST_INTERSECTS(geometry, CIRCLE(LATLNG(' + lat + ', ' + lng + '),1))', 
      limit: 1 
      } 

검사를 기하학 컬럼에 정의 된 다각형의 교차 및 서클 북에서 LNG를 1m 직경.

FusionTablesLayer exmaple

+0

부울을 반환하도록 가져올 수 있습니까? 이것을 사용하여 containsLocation()을 사용할 수 있습니다. 어떻게 생각해? – Dol

+0

그런데 아주 도움이되는 사이트 :). – Dol

+0

위의 내용을 확인하기 위해 기본적으로 원과 다각형이 같은 위치에 있다고 명시하고 있습니까? – Dol