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ę:
- 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.
- Opcjonalnie określ opcje żądania, takie jak metoda wysyłania, jako opcjonalny drugi parametr w konstruktorze obiektu
Query
(szczegóły znajdziesz w parametrzeopt_options
konstruktora zapytań): - 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. - 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:
- 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ć klasygoog.visualization.errors
, aby wyświetlić komunikaty niestandardowe (przykład niestandardowego przetwarzania błędów znajdziesz w przykładzie kodu zapytania). - 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
- Składnia języka zapytań – opis składni języka używanego do tworzenia zapytań o dane.
- Klasa zapytania – strona referencyjna dla klasy, która opatruje zapytanie.
- Klasa odpowiedzi na zapytanie – strona referencyjna dla klasy, która opatruje odpowiedź na zapytanie.