Zapytania o dane

Na tej stronie dowiesz się, jak wysłać zapytanie do źródła danych obsługującego protokół źródła danych narzędzia do tworzenia wykresów.

Omówienie

Źródło danych to usługa internetowa, która obsługuje protokół Chart Tools Datasource. Możesz wysłać zapytanie SQL do źródła danych, a w odpowiedzi otrzymasz tabelę danych zawierającą odpowiednie informacje. Przykładami źródeł danych są Arkusze kalkulacyjne Google i Salesforce.

Wysyłanie prośby

Aby wysłać prośbę:

  1. Utwórz instancję obiektu Query, używając adresu URL źródła danych. Adres URL powinien wskazywać składowaną treść, której dotyczy żądanie.
  2. Opcjonalnie określ opcje żądania, takie jak metoda wysyłania, jako opcjonalny drugi parametr w konstruktorze obiektu Query (szczegóły znajdziesz w parametrze opt_options konstruktora zapytań):
  3. Opcjonalnie dodaj ciąg języka zapytania, aby posortować wyniki lub filtrować je, a następnie wysłać żądanie. Źródła danych nie są wymagane do obsługi języka zapytań Źródła danych Wykresów narzędzi. Jeśli źródło danych nie obsługuje języka zapytania, zignoruje ciąg zapytania SQL, ale zwróci DataTable. Język zapytań to wariant języka SQL. Pełną składnię języka zapytania znajdziesz tutaj.
  4. Wyślij zapytanie, określając moduł obsługi wywołania zwrotnego, który będzie wywoływany po otrzymaniu odpowiedzi. Szczegółowe informacje znajdziesz w następnej sekcji.

Oto przykład wysyłania żądania dotyczącego danych w zakresie arkusza kalkulacyjnego Google. Aby dowiedzieć się, jak uzyskać adres URL arkusza kalkulacyjnego Google, zajrzyj tutaj:

function initialize() {
  var opts = {sendMethod: 'auto'};
  // Replace the data source URL on next line with your data source URL.
  var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts);

  // Optional request to return only column C and the sum of column B, grouped by C members.
  query.setQuery('select C, sum(B) group by C');

  // Send the query with a callback function.
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  // Called when the query response is returned.
  ...
}

Przetwarzanie odpowiedzi

Funkcja obsługi odpowiedzi zostanie wywołana po zwróceniu żądania. Parametr przekazywany do funkcji obsługi odpowiedzi ma typ google.visualization.QueryResponse. Jeśli żądanie zostało zrealizowane, odpowiedź zawiera tabelę danych (google.visualization.DataTable). Jeśli żądanie nie zostało zrealizowane, odpowiedź zawiera informacje o błędzie, a nie DataTable.

Twoja aplikacja do obsługi odpowiedzi powinna:

  1. Zadzwoń pod numer response.isError(), aby sprawdzić, czy żądanie się powiodło, czy nie. Nie musisz wyświetlać żadnych komunikatów o błędach użytkownikowi. Biblioteka wizualizacji wyświetli odpowiedni komunikat o błędzie w kontenerze <div>. Jeśli jednak chcesz obsługiwać błędy ręcznie, możesz użyć klasy goog.visualization.errors, aby wyświetlić komunikaty niestandardowe (przykład niestandardowego przetwarzania błędów znajdziesz w przykładzie kodu zapytania).
  2. Jeśli żądanie zostanie zrealizowane, odpowiedź będzie zawierać żądanie DataTable, które możesz odzyskać, wywołując metodę getDataTable(). Pokaż ją na wykresie.

Ten kod pokazuje, jak przetwarzać poprzednie dane w celu narysowania wykresu kołowego:

function handleQueryResponse(response) {

  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }

  var data = response.getDataTable();
  var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 400, height: 240, is3D: true});
}

Odczytywanie plików CSV

Jeśli chcesz utworzyć wykres na podstawie danych CSV (wartości rozdzielanych przecinkami), masz dwie możliwości:

  • Przekonwertuj dane na format tabeli danych Wykresów Google.
  • Umieść plik CSV na serwerze WWW, na którym wyświetla się wykres, i uruchom zapytanie na tej stronie, korzystając z metody opisanej na tej stronie.

Więcej informacji