2012-03-09 1 views
3

Fusion Tables API 예제를 참조합니다. "Update Query"https://developers.google.com/fusiontables/docs/samples/change_query 지도에서 레이어의 내용을 변경하는 드롭 다운 메뉴입니다.기본 Fusion Tables API : 업데이트 쿼리를 어떻게 올바르게 수행합니까?

나는 내 자신의 사이트에서 전체 예제를 재구성하려고했지만, 아직 해결하지 못했습니다. 나는 (Google 융합 표의 데이터가있는) 레이어가 초기화되는 부분에 가능한 실수와 함정을 좁혔습니다. 그것은 구글의 예처럼 보이는 : 여기

var layer = new google.maps.FusionTablesLayer({ 
     query: { 
     select: locationColumn, 
     from: tableId 
     }, 
     map: map 
    }); 

위에 표시된 하나를 제외하고, 융합 테이블 내 자신의 예제의 모든에서 날 위해 일했다 코드입니다. 여기
var layer = new google.maps.FusionTablesLayer(tableid) 
layer.setMap(map); 

라이브 코드에 대한 링크입니다 : 내가이 모든 API와 자바 스크립트 것은 새로운 오전로서 첫 번째 예제가 작동하지 않는 이유 http://krealeo12.appspot.com/

, 난 구별 할 수 두 번째는 무엇입니까? ! 차이점은 무엇이며, 더 중요한 것은 무엇을 의미합니까?

모든 힌트와 조언에 대해 매우 감사드립니다. J.

+0

나는 당신이하려는 것을 완전히 이해하지 못합니다. 라이브 코드에 드롭 다운을 추가 하시겠습니까? 또는 코드의 첫 번째 큰 덩어리를 사용하여 퓨전 테이블 데이터를로드 할 수 있습니까? –

답변

2

또한이 문제는 퓨전 테이블을 사용하기 시작했을 때 혼란 스러웠습니다. 사용되지 않는 메소드가 사용되는 많은 예제가 있습니다.

var layer = new google.maps.FusionTablesLayer(tableid) 
layer.setMap(map); 
layers.setQuery("select * from " + tableid + " where ridership > 5000"); 

인용 할 첫 번째 예제는 적절한 방법입니다. 가장 혼란스러운 점은 두 가지 접근 방식을 결합 할 수 없다는 것입니다. 예 : 지난 번 내가 확인한 후에는 다음이 작동하지 않습니다. 초기 맵은 잘 표시되지만 쿼리는 작동하지 않습니다.

var layer = FusionTablesLayer(tableid); 
var layer.setOptions{ 
    query: { 
    select: 'address', 
    from: '198945', 
    where: 'ridership > 5000' 
    } 
}); 

적절한 방법은 docs

+1

물론 나는 당신의 오타가 아니라 tableId와 tableid에 있다고 가정하고 있습니다. –

+0

좋은 조언을 주셔서 감사합니다. 나는 문서에 설명 된 방법으로 일하려고 애를 쓰고있다.그럼에도 불구하고 나는 여전히 변경 쿼리 문제에 문제가있다. 기본적으로 Google Fusion Tables Layer 샘플 인 "Legend"와 "Update Query"를 결합하려고했습니다. http://developers.google.com/fusiontables/docs/samples/legend http://developers.google.com/fusiontables/docs/samples/change_query 실수 및 오타가있는 코드를 확인했지만 그 이유를 찾을 수 없습니다. 드롭 다운 메뉴에서 항목을 클릭하여 선택하면 쿼리가 작동하지 않습니다. 어떤 생각? 미리 감사드립니다 링크 : http://sportstleo12.appspot.com/ – user1260086

0

정말 또 다른 질문에 설명되어 있습니다, 그래서 새로운 답을 추가 해요. updateMap() 함수에 오류가 있습니다.

function updateMap(layer, tableid, locationColumn) { 
     var sportart = document.getElementById('search-string').value; 
     if (sportart) { 
      layer.setOptions({ 
      query: { 
       select: locationColumn, 
       from: tableid, 
       where: "sportart = '" + search-string + "'" // ERROR 
      } 
      }); 
     } else { 
      layer.setOptions({ 
      query: { 
       select: locationColumn, 
       from: tableid 
      } 
      }); 
     } 
     } 

선택 목록 검색 값은 "search-string"이 아닌 "sportart"라고합니다.

0

Google은 검색어의 오류 메시지를 제공하지 않으므로 시행 착오와 결과 검색을 위해 검색을 사용해야 할 수 있습니다. 이것은 나를 위해 일했다. 전체 문자열 주위의 따옴표 (예상대로)와 날짜 주위의 따옴표를 주목하십시오.

 layer.setOptions({ 
     query:{ 
      select: "col1", 
      from: "1Ayaf5aKAanSv6HAtsTLtcAhrnpF94XyuNZ9u_Sk", 
      where: "Date<'01/01/2011'" 
     }, 
     styles:[{ 
       markerOptions:{ 
         iconName:'measle_gray' 
       } 
      }] 
     });   

유용한하지만 찾기 힘든 페이지가 많은 가운데, 허용 날짜 형식을 설명합니다 작은 점의 다양한 색상이 아니라

"small_"보다 "measle_"라고 이유를 모르겠어요 https://developers.google.com/fusiontables/docs/v1/sql-reference
0

사용할 수 있습니다.

var fusionOptions = { 

      query: { 
      select: "Geometry", 
      from: "tableId", 
      where: "" 
      }, 

     styles: [{ 

      where: 'Available_Impressions < 605173', 
      polygonOptions: { 
      fillColor: '#88bad8', 
      fillOpacity: 0.8 
      } 
     }, { 
      where: 'Available_Impressions > 605173', 
      polygonOptions: { 
      fillColor: '#5792c3', 
      fillOpacity: 0.8 
      } 
     }, { 
      where: 'Available_Impressions > 1210347', 
      polygonOptions: { 
      fillColor: '#4572ab', 
      fillOpacity: 0.8 
      } 
     }]   

    }