Na tej stronie opisujemy komunikaty o błędach, które może zwrócić interfejs Maps JavaScript API. Interfejs Maps JavaScript API zapisuje komunikaty o błędach i ostrzeżenia w konsoli JavaScript. Mogą też wystąpić pewne warunki błędu, które spowodują wyświetlenie przyciemnionej mapy z wodą.
Błędy klucza interfejsu API i płatności
Rozwiązywanie problemów
W pewnych okolicznościach może zostać wyświetlona przyciemniona mapa lub „negatywowy” obraz Street View z znakami wodnymi z tekstem „Tylko do celów rozwojowych”. Takie zachowanie zwykle wskazuje na problemy z kluczem API lub rozliczeniami. Aby korzystać z usług Google Maps Platform, musisz mieć na koncie włączone płatności, a wszystkie żądania muszą zawierać prawidłowy klucz interfejsu API. Informacje o tym, jak znaleźć komunikaty o błędach, znajdziesz w sekcji Sprawdzanie błędów w przeglądarce.
Poniższa procedura pomoże Ci rozwiązać problem.
Czy używasz klucza interfejsu API?
Tego nie wiem. Jak sprawdzić, czy używam klucza interfejsu API?
Klucz interfejsu API jest przekazywany jako parametr key
w adresie URL służącym do wczytania interfejsu Maps JavaScript API. Oto kilka sposobów sprawdzenia, czy używasz klucza API:
- Użyj rozszerzenia Google Maps Platform API Checker do przeglądarki Chrome. Dzięki temu możesz sprawdzić, czy Twoja witryna prawidłowo implementuje licencjonowane interfejsy API Map Google.
- Jeśli do wczytania interfejsu Maps JavaScript API używasz biblioteki lub wtyczki, sprawdź ustawienia tej biblioteki i poszukaj opcji klucza interfejsu API.
- Sprawdź błędy w przeglądarce. Jeśli widzisz te komunikaty, oznacza to, że nie używasz prawidłowo klucza interfejsu API:
- Ostrzeżenie dotyczące interfejsu Maps JavaScript API: NoApiKeys
- Błąd interfejsu Maps JavaScript API: MissingKeyMapError
Informacje dla programistów stron internetowych:
-
Jeśli masz dostęp do kodu źródłowego aplikacji, poszukaj tagu
<script>
, który służy do wczytywania interfejsu Maps JavaScript API. Podczas wczytywania interfejsu Maps JavaScript API zastąp w poniżej zamieszczonym kodzie wartośćYOUR_API_KEY
swoim kluczem interfejsu API.<script async defer src="https://maps.googleapis.com/maps/api/js?key=
YOUR_API_KEY &callback=initMap"> </script> -
Sprawdź w przeglądarce ruch sieciowy generowany przez Twoją witrynę.
W Chrome można to sprawdzić na karcie DevTools Sieć.
Tutaj zobaczysz żądania sieci wysyłane przez Twoją witrynę. Żądania wysyłane za pomocą interfejsu Maps JavaScript API będą znajdować się na ścieżce
maps/api/js
. Tutaj możesz sprawdzić, czy żądania używają parametrukey
. Podczas wyświetlania karty Sieć może być przydatne odfiltrowanie ruchu sieciowego wedługmaps/api/js
.
Nie, nie używam klucza interfejsu API.
Aby uzyskać klucz interfejsu API, kliknij przycisk poniżej. Jeśli nie widzisz samouczkowej konfiguracji, postępuj zgodnie z pełnymi instrukcjami w artykule Pierwsze kroki z Google Maps Platform.
Pierwsze kroki
Tak, używam klucza interfejsu API.
Świetnie. Sprawdźmy, czy do Twojego projektu jest przypisane konto rozliczeniowe.
Czy z Twoim projektem jest połączone konto rozliczeniowe?
Tego nie wiem. Jak sprawdzić, czy konto rozliczeniowe jest połączone z moim projektem?
W konsoli Google Cloud otwórz stronę Płatności i wybierz projekt, w którym został utworzony klucz API. Aby sprawdzić, czy klucz jest powiązany z projektem:
- Otwórz sekcję Dane logowania, do której możesz przejść z poziomego paska po lewej stronie w sekcji Google Maps Platform > Dane logowania.
- Sprawdź, czy klucz API, którego obecnie używasz w witrynie, jest widoczny na liście. Jeśli tak nie jest, przejdź do innego projektu i sprawdź tam te dane.
- Jeśli nie możesz znaleźć projektu, w którym znajduje się klucz interfejsu API, być może utraciłeś do niego dostęp.
Poproś o pomoc innych użytkowników w organizacji. Jeśli nie możesz znaleźć pierwotnego projektu:
- Utwórz nowy projekt. Aby to zrobić, na liście projektów wybierz Nowy projekt lub na stronie Menedżera zasobów kliknij Utwórz projekt.
- Tworzenie nowego klucza interfejsu API Możesz to zrobić na stronie Dane logowania. Następnie kliknij Utwórz dane logowania, a potem wybierz Klucz interfejsu API.
Po znalezieniu projektu w Cloud Console sprawdź, czy jest do niego dołączone konto rozliczeniowe. Aby to zrobić, otwórz sekcję Płatności w menu po lewej stronie.
Nie, mojego projektu nie powiązano z kontem rozliczeniowym.
Otwórz w konsoli Cloud stronę Włączanie płatności i dodaj do projektu konto rozliczeniowe. Więcej informacji znajdziesz w artykule Pierwsze kroki z Google Maps Platform.
Tak, do mojego projektu jest przypisane konto rozliczeniowe.
Świetnie. Sprawdźmy, czy podana metoda płatności jest prawidłowa.
Czy podana forma płatności nie jest już ważna (np. karta kredytowa wygasła)?
możesz dodawać, usuwać i aktualizować formę płatności w Konsoli Cloud.
Czy został przekroczony samookreślony dzienny limit interfejsu API?
Jeśli dla któregoś z interfejsów API ustawiony jest limit dzienny, co jest powszechną praktyką zapobiegającą nieoczekiwanym wzrostom, możesz rozwiązać ten problem, zwiększając limit dzienny.
Limity dzienne możesz sprawdzić w panelu Interfejsy API i usługi w Cloud Console. Gdy otworzysz Menedżera:
- Jeśli pojawi się monit, wybierz projekt.
- Wybierz interfejs API z listy, a potem kliknij kartę Limity.
Czy Twój klucz interfejsu API ma ograniczenie adresów IP?
Kluczy API z ograniczeniem adresów IP można używać tylko z usługami internetowymi przeznaczonymi do korzystania po stronie serwera (np. interfejsem Geocoding API i innymi interfejsami API usług internetowych). Większość tych usług internetowych ma odpowiedniki w Maps JavaScript API (np. usługa geokodowania). Aby korzystać z usług po stronie klienta interfejsu Maps JavaScript API, musisz utworzyć osobny klucz interfejsu API, który można zabezpieczyć za pomocą ograniczenia stron odsyłających HTTP (patrz Uzyskiwanie, dodawanie i ograniczanie dostępu do klucza interfejsu API).
Kody błędów interfejsu Maps JavaScript API dla programistów i właścicieli witryn
W poniższych tabelach znajdziesz listę możliwych kodów błędów zwracanych przez interfejs Maps JavaScript API wraz z opisem przyczyny i sposobu rozwiązania problemu. Aby dowiedzieć się, jak znaleźć komunikaty o błędach, zapoznaj się z sekcją Sprawdzanie błędów w przeglądarce.
Błędy wczytywania mapy
Jeśli podczas wczytywania interfejsu Maps JavaScript API wystąpi błąd, w tabeli poniżej znajdziesz wyjaśnienia kodów błędów.
Kod błędu | Wiadomość | Opis |
---|---|---|
NotLoadingAPIFromGoogleMapsError
|
Interfejs Maps JavaScript API musi zostać pobrany bezpośrednio ze serwerów Google. |
Na stronie nie jest prawidłowo uwzględniony element skryptu, który wczytuje interfejs Maps JavaScript API. Aby interfejs API działał prawidłowo, musi być ładowany bezpośrednio z adresu https://maps.googleapis.com. |
TOSViolationMapError
|
Wygląda na to, że ta witryna narusza Warunki korzystania z interfejsu API Map Google. Interfejs API Map Google został wyłączony w tej witrynie. |
Twoja aplikacja została zablokowana z powodu niezgodności z Warunkami korzystania z usługi Google Maps Platform, o czym powiadomiliśmy Cię kilkukrotnie e-mailem. Aby odwołać się od decyzji o zablokowaniu i poprosić o sprawdzenie wdrożenia, wypełnij ten formularz. Odpowiedź otrzymasz e-mailem w ciągu kilku dni roboczych. Jeśli masz licencję na abonament Premium w Google Maps Platform, użyj danych logowania do abonamentu Premium w Google Maps Platform, aby rozwiązać ten problem. Zapoznaj się z przewodnikiem dotyczącym uwierzytelniania w ramach abonamentu premium. |
UnauthorizedURLForClientIdMapError
|
Ten adres URL nie jest autoryzowany do używania podanego identyfikatora klienta Map Google. |
Plan Premium lub interfejsy API Maps for Work: identyfikator klienta uwzględniony w załadowanym skrypcie jest nieprawidłowy, wygasł lub bieżący adres wczytujący interfejs Maps JavaScript API nie został dodany do listy autoryzowanych adresów URL. |
Kody błędów Maps JavaScript API
Jeśli znajdziesz błąd w konsoli JavaScriptu Chrome, konsoli internetowej Firefoxa lub innym odpowiednim narzędziu w przeglądarce, zapoznaj się z tabelą poniżej, aby znaleźć wyjaśnienia kodów błędów.
Interfejs Maps JavaScript API zwraca zarówno błędy, jak i ostrzeżenia. Błąd wskazuje poważny problem, który wystąpił podczas wczytywania interfejsu Maps JavaScript API. Strona nie może prawidłowo wczytać interfejsu API i nie będzie on na niej działać. Ostrzeżenie to dodatkowy komunikat o wczytywaniu interfejsu Maps JavaScript API. Ostrzeżenie zawiera opis możliwych przyczyn błędu lub sugeruje potencjalne problemy w kodzie, który wczytuje interfejs Maps JavaScript API. Jeśli otrzymasz tylko ostrzeżenia bez błędów, interfejs API będzie działać prawidłowo na tej stronie. Zalecamy jednak, abyś rozwiązał/a także te potencjalne problemy.
Kod błędu dewelopera | Typ | Opis |
---|---|---|
ApiNotActivatedMapError
|
Błąd |
Interfejs Maps JavaScript API nie jest aktywowany w Twoim projekcie API. Może być konieczne włączenie interfejsu Maps JavaScript API w sekcji Interfejsy API w Google Cloud Console. Aby aktywować interfejs Maps JavaScript API w projekcie, kliknij przycisk poniżej.
|
ApiTargetBlockedMapError
|
Błąd |
Ten klucz API nie jest autoryzowany do korzystania z tej usługi lub interfejsu API. Sprawdź ustawienia ograniczeń interfejsu API klucza interfejsu API w Konsoli Google Cloud, aby mieć pewność, że wszystkie interfejsy API i usługi, których potrzebujesz, są prawidłowo określone na liście włączonych interfejsów API. Zapoznaj się z tematem kluczy interfejsu API w Cloud Console. Więcej informacji znajdziesz w artykule Sprawdzone metody dotyczące zabezpieczeń interfejsu API. |
DeletedApiProjectMapError
|
Błąd |
Twój projekt interfejsu API mógł zostać usunięty z konsoli Cloud. Sprawdź projekt, dla którego został wygenerowany klucz interfejsu API, który jest zawarty w ładowarce interfejsu API JavaScript. Możesz utworzyć nowy projekt interfejsu API i uzyskać nowy klucz w konsoli Cloud. Aby utworzyć nowy projekt i uzyskać klucz interfejsu API dla tego projektu, kliknij przycisk poniżej.
|
ClientBillingNotEnabledMapError
|
Błąd |
W projekcie nie włączono płatności. Musisz włączyć płatności w projekcie Google Cloud powiązanym z tym identyfikatorem klienta.Tutaj możesz to zrobić. |
BillingNotEnabledMapError
|
Błąd |
W projekcie nie masz włączonych płatności, co powoduje ten błąd. Musisz włączyć płatności w projekcie Google Cloud.Tutaj znajdziesz instrukcje. |
ExpiredKeyMapError
|
Błąd |
klucz interfejsu API zawarty w elemencie skryptu, który wczytuje interfejs API, wygasł lub nie jest rozpoznawany przez system; Ten błąd może się pojawić po utworzeniu nowego klucza interfejsu API, jeśli spróbujesz użyć tego klucza, zanim zostanie on rozpoznany przez system. Poczekaj kilka minut i spróbuj ponownie. Być może musisz wygenerować nowy klucz API w konsoli Cloud Console. Aby uzyskać klucz interfejsu API, kliknij przycisk poniżej.
|
InvalidAppCheckTokenMapError
|
Błąd |
Podany token Sprawdzania aplikacji jest nieprawidłowy lub wygasł. Ten błąd może wystąpić tylko wtedy, gdy używana jest weryfikacja za pomocą App Check. Zapoznaj się z przewodnikiem dotyczącym weryfikacji aplikacji. |
InvalidClientIdMapError
|
Błąd |
Identyfikator klienta podany w elemencie skryptu, który wczytuje interfejs API, jest nieprawidłowy lub wygasł. Sprawdź, czy poprawnie używasz identyfikatora klienta. Identyfikator klienta powinien zaczynać się od przedrostka „gme-”. Jeśli ten błąd pojawia się, mimo że prawidłowo używasz identyfikatora klienta, może to oznaczać, że identyfikator wygasł. Skontaktuj się ze swoim opiekunem klienta w Google.
Jeśli nie masz abonamentu premium ani licencji na interfejsy API Map Google for Work, zamiast parametru Zapoznaj się z przewodnikiem dotyczącym uwierzytelniania w ramach abonamentu premium. |
InvalidKeyMapError
|
Błąd |
Nie znaleziono klucza API zawartego w elemencie skryptu, który wczytuje interfejs API. Upewnij się, że używasz prawidłowego klucza API. Możesz wygenerować nowy klucz interfejsu API w konsoli Cloud Console. Aby uzyskać klucz interfejsu API, kliknij przycisk poniżej.
|
MalformedCredentialsMapError
|
Błąd |
Twoja aplikacja używa nieobsługiwanego schematu identyfikatora URI. Sprawdź, czy aplikacja używa prawidłowego formatu URI zgodnie z definicją w dokumencie RFC 3986. |
MissingKeyMapError
|
Błąd |
W elemencie skryptu, który wczytuje interfejs API, brakuje wymaganego parametru uwierzytelniania. Jeśli używasz standardowego interfejsu Maps JavaScript API, musisz użyć parametru Jeśli korzystasz z abonamentu Premium, musisz użyć parametru Jeśli nie jesteś właścicielem witryny, nie możesz nic zrobić, aby naprawić ten błąd. Jeśli to możliwe, poinformuj o tym właściciela witryny. |
ProjectDeniedMapError
|
Błąd |
Twoja prośba nie została zrealizowana. Więcej informacji o błędzie możesz znaleźć w Cloud Console. Zapoznaj się z Cloud Console. |
RefererDeniedMapError
|
Błąd |
Twoja aplikacja została zablokowana z powodu niezgodności z Warunkami korzystania z usługi Google Maps Platform, o czym powiadomiliśmy Cię kilkukrotnie e-mailem. Aby odwołać się od decyzji o zablokowaniu i poprosić o sprawdzenie wdrożenia, wypełnij ten formularz. Odpowiedź otrzymasz e-mailem w ciągu kilku dni roboczych. |
RefererNotAllowedMapError
|
Błąd |
Bieżący adres URL wczytujący interfejs Maps JavaScript API nie został dodany do listy dozwolonych odesłań. Sprawdź ustawienia odesłania klucza interfejsu API w Cloud Console. Zapoznaj się z interfejsem Maps JavaScript API i uzyskaj klucz interfejsu API. |
OverQuotaMapError
|
Błąd |
Liczba żądań przekracza limity użycia interfejsu Maps JavaScript API. Żądania aplikacji zaczną działać ponownie po zresetowaniu dziennego limitu. Jeśli nie jesteś właścicielem witryny, nie możesz wykonać żadnych czynności, aby naprawić ten błąd. Jeśli to możliwe, poinformuj o tym właściciela witryny. Więcej informacji znajdziesz w przewodniku dotyczącym limitów użytkowania. Znajdziesz tam też informacje o tym, jak zwiększyć limity wykorzystania. |
ApiProjectMapError
|
Błąd |
Nie udało się rozpoznać podanego klucza interfejsu API ani projektu interfejsu API, z którym jest on powiązany. Ten błąd może być tymczasowy. Jeśli ten komunikat o błędzie będzie się powtarzać, konieczne może być uzyskanie nowego klucza interfejsu API lub utworzenie nowego projektu interfejsu API. Więcej informacji znajdziesz w artykule Pierwsze kroki z Google Maps Platform. |
ClientIdLooksLikeCryptoKey
|
Ostrzeżenie |
W parametrze Zapoznaj się z przewodnikiem dotyczącym identyfikatorów klienta dla klientów korzystających z abonamentu Premium i interfejsów API Map Google for Work. |
ClientIdLooksLikeKey
|
Ostrzeżenie |
W parametrze Zapoznaj się z przewodnikiem dotyczącym uwierzytelniania w ramach abonamentu premium. |
InvalidChannel
|
Ostrzeżenie |
Możliwe, że podano nieprawidłowy parametr Zapoznaj się z artykułem Raportowanie | Google Maps Platform – pakiet Premium. |
InvalidClientId
|
Ostrzeżenie |
Wygląda na to, że parametr Zapoznaj się z przewodnikiem dotyczącym uwierzytelniania w ramach abonamentu premium. |
InvalidKey
|
Ostrzeżenie |
Klucz interfejsu API zawarty w elemencie skryptu, który wczytuje interfejs API, wygląda na nieprawidłowy. Upewnij się, że używasz prawidłowego klucza API. Nowy klucz interfejsu API możesz wygenerować w konsoli Cloud. Aby uzyskać klucz interfejsu API, kliknij przycisk poniżej.
|
InvalidVersion
|
Ostrzeżenie |
Być może w elemencie skryptu podano nieprawidłowy numer wersji. Upewnij się, że używasz prawidłowego numeru wersji. |
KeyLooksLikeClientId
|
Ostrzeżenie |
Identyfikator klienta został prawdopodobnie podany jako parametr key . Jeśli masz abonament Premium lub licencję na interfejsy Maps API for Work, jako parametr client podaj identyfikator klienta zamiast parametru key . Jeśli masz abonament premium Google Maps Platform, możesz użyć parametru client lub key . Jeśli nie masz żadnych licencji,
musisz użyć parametru key zamiast parametru client
.
Zapoznaj się z przewodnikiem dotyczącym uwierzytelniania w ramach abonamentu premium. |
KeyLooksLikeCryptoKey
|
Ostrzeżenie |
Jako parametr Zapoznaj się z przewodnikiem Podawanie identyfikatora klienta podczas wczytywania interfejsu API. |
KeyLooksLikeProjectNumber
|
Ostrzeżenie |
Jako parametr Dowiedz się, jak uzyskać klucz API. |
NoApiKeys
|
Ostrzeżenie |
Element skryptu, który wczytuje interfejs API, nie ma klucza API. Pamiętaj, aby w parametrze
Aby uzyskać klucz interfejsu API, kliknij przycisk poniżej.
Jeśli wczytujesz interfejs Maps JavaScript API z nieużywanej wersji 2, otrzymasz ostrzeżenie |
RetiredVersion
|
Ostrzeżenie |
W swoim elemencie skryptu możesz mieć podany wycofany skrypt. Zaktualizuj aplikację, aby używać jednej z dostępnych wersji. |
SensorNotRequired
|
Ostrzeżenie |
Parametr |
SignatureNotRequired
|
Ostrzeżenie |
W przypadku interfejsu Maps JavaScript API parametr |
SignedInNotSupported
|
Ostrzeżenie |
Parametr |
UrlAuthenticationCommonError
|
Błąd |
Wystąpił błąd, który nie pasuje do żadnej z innych kategorii na tej stronie. Może to być spowodowane chwilowym problemem. Spróbuj ponownie przesłać prośbę po krótkiej przerwie. Jeśli to nie rozwiąże problemu, zapoznaj się z przewodnikiem dla deweloperów, aby sprawdzić, czy żądanie ma prawidłowy format. |
Sprawdzanie błędów w przeglądarce
Interfejs Maps JavaScript API zapisuje komunikaty o błędach w pliku window.console
. Z tej sekcji dowiesz się, jak sprawdzić dane wyjściowe window.console
w Google Chrome. Jeśli używasz innej przeglądarki, zapoznaj się z dokumentacją dla deweloperów tej przeglądarki. Poniżej znajdziesz listę narzędzi do sprawdzania wyjścia window.console
w niektórych innych przeglądarkach.
- Konsola internetowa w Firefoxie.
- Debugowanie zdalne na Androidzie.
- Web Inspector na iOS.
W Chrome możesz użyć konsoli JavaScriptu, aby sprawdzić dane wyjściowe window.console
w ten sposób:
- Aby otworzyć Narzędzia dla deweloperów, kliknij ikonę menu > Więcej narzędzi > Narzędzia dla deweloperów.
- Aby otworzyć konsolę JavaScript, naciśnij klawisz ESC na klawiaturze. Klawisz ESC włącza i wyłącza konsolę JavaScript. Jeśli zamkniesz konsolę, naciśnij ponownie klawisz Esc, aby ją otworzyć.
Jeśli podczas wczytywania interfejsu Maps JavaScript API wystąpiły błędy lub ostrzeżenia, pojawią się one w postaci co najmniej 1 wiersza w konsoli. Komunikat o błędzie lub ostrzeżenie ma taki format:
Google Maps API error: [ERROR CODE] [Link to API document]
lub
Google Maps API warning: [ERROR CODE] [Link to API document]
W tabeli kodów błędów powyżej możesz znaleźć kod błędu w komunikacie o błędzie. Szczegółowe informacje o błędach znajdziesz też w dokumentacji interfejsu API, do której link znajduje się w wiadomości.
Uwaga: możesz odsłuchiwać błędów uwierzytelniania za pomocą kodu.
Obsługa nieobsługiwanych przeglądarek
Upewnij się, że wersja przeglądarki, której używasz, jest obecnie obsługiwana przez interfejs Maps JavaScript API.
Jeśli tworzysz natywny program na Windowsa, który działa w komponencie WebView, upewnij się, że używasz WebView2 na podstawie Edge. Wcześniejsze wersje WebView oparte na przeglądarce Internet Explorer nie są już obsługiwane.
Jeśli kod nadal nie działa
Aby pomóc Ci w uruchomieniu kodu map, Brendan Kenny i Mano Marks wskazują w tym filmie kilka typowych błędów i sposoby ich naprawiania.
- Sprawdź, czy nie ma literówek. Pamiętaj, że w JavaScript wielkość liter ma znaczenie.
- Sprawdź podstawy – niektóre z najczęstszych problemów występują podczas tworzenia mapy. Na przykład:
- Sprawdź, czy w opcjach mapy masz określone właściwości
zoom
icenter
. - Upewnij się, że masz zadeklarowany element div, w którym mapa będzie widoczna na ekranie.
- Upewnij się, że element div mapy ma wysokość. Domyślnie elementy div są tworzone z wysokością 0, dzięki czemu są niewidoczne.
- Sprawdź, czy w opcjach mapy masz określone właściwości
- Użyj debugera JavaScriptu, aby zidentyfikować problemy, takie jak te dostępne w Narzędziach dla deweloperów w Chrome. Najpierw sprawdź konsolę JavaScriptu pod kątem błędów.
- Opublikuj pytania na Stack Overflow. Wskazówki, jak publikować dobre pytania, znajdziesz na stronie Pomoc.