Dodawanie mapy Google ze znacznikiem w witrynie

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Wprowadzenie

W tym samouczku pokazujemy, jak dodać do strony internetowej prostą mapę Google ze znacznikiem. Przyda się ona użytkownikom, którzy mają już opanowane podstawy HTML lub CSS i trochę posługiwali się tym językiem. Zaawansowany przewodnik na temat tworzenia map znajdziesz w przewodniku dla programistów.

Poniżej znajdziesz mapę, którą utworzysz w ramach tego samouczka. Znacznik znajduje się w Uluru (nazywanym też Ayers Rock) w Parku Narodowym Uluru-Kata Tjuta.

Sekcja poniżej zawiera cały kod potrzebny do utworzenia mapy w tym samouczku.

TypeScript

// Initialize and add the map
function initMap(): void {
  // The location of Uluru
  const uluru = { lat: -25.344, lng: 131.031 };
  // The map, centered at Uluru
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: uluru,
    }
  );

  // The marker, positioned at Uluru
  const marker = new google.maps.Marker({
    position: uluru,
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// Initialize and add the map
function initMap() {
  // The location of Uluru
  const uluru = { lat: -25.344, lng: 131.031 };
  // The map, centered at Uluru
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: uluru,
  });
  // The marker, positioned at Uluru
  const marker = new google.maps.Marker({
    position: uluru,
    map: map,
  });
}

window.initMap = initMap;

CSS;

/* Set the size of the div element that contains the map */
#map {
  height: 400px; /* The height is 400 pixels */
  width: 100%; /* The width is the width of the web page */
}

HTML

<html>
  <head>
    <title>Add Map</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <h3>My Google Maps Demo</h3>
    <!--The div element for the map -->
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises
      with https://www.npmjs.com/package/@googlemaps/js-api-loader.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

Fragment

Pierwsze kroki

Aby utworzyć mapę Google ze znacznikiem na stronie internetowej, wykonaj 3 czynności:

  1. Tworzenie strony HTML
  2. Dodawanie mapy ze znacznikiem
  3. Wygeneruj klucz interfejsu API

Potrzebujesz przeglądarki. Wybierz jedną z popularnych przeglądarek, takich jak Google Chrome (zalecane), Firefox, Safari lub Edge, na podstawie Twojej listy obsługiwanych przeglądarek.

Krok 1. Utwórz stronę HTML

Oto kod podstawowej strony internetowej HTML:

<!DOCTYPE html>
<!--
 @license
 Copyright 2019 Google LLC. All Rights Reserved.
 SPDX-License-Identifier: Apache-2.0
-->
<html>
  <head>
    <title>Add Map</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <h3>My Google Maps Demo</h3>
    <!--The div element for the map -->
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises
      with https://www.npmjs.com/package/@googlemaps/js-api-loader.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

To jest bardzo prosta strona z nagłówkiem 3 (h3) i 1 elementem div. Do strony internetowej możesz dodać dowolne treści.

Omówienie kodu

Poniższy kod tworzy stronę HTML składającą się z nagłówka i treści.

<html>
 <head>
 </head>
 <body>
 </body>
</html>

Za pomocą poniższego kodu możesz dodać nad poziomem mapy nagłówek 3.

<h3>My Google Maps Demo</h3>

Kod poniżej określa obszar strony przeznaczonej do mapy Google.

<!--The div element for the map -->
<div id="map"></div>

Na tym etapie samouczka div jest tylko szarym blokiem, bo nie dodano jeszcze mapy. W kodzie poniżej widać kod CSS, który ustawia rozmiar i kolor elementu div.

/**
 * @license
 * Copyright 2019 Google LLC. All Rights Reserved.
 * SPDX-License-Identifier: Apache-2.0
 */
/* Set the size of the div element that contains the map */
#map {
  height: 400px; /* The height is 400 pixels */
  width: 100%; /* The width is the width of the web page */
}

W powyższym kodzie element style ustawia div jako rozmiar mapy. Szerokość i wysokość div muszą być większe niż 0 pikseli, by mapa była widoczna. W tym przypadku div ma wysokość 400 pikseli, a szerokość – 100%, aby wyświetlać całą szerokość strony internetowej.

Krok 2. Dodaj mapę ze znacznikiem

W tej sekcji dowiesz się, jak wczytać interfejs API JavaScript Map Google na swojej stronie internetowej oraz jak napisać własny kod JavaScript, który korzysta z interfejsu API do dodawania mapy ze znacznikiem.

TypeScript

// Initialize and add the map
function initMap(): void {
  // The location of Uluru
  const uluru = { lat: -25.344, lng: 131.031 };
  // The map, centered at Uluru
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: uluru,
    }
  );

  // The marker, positioned at Uluru
  const marker = new google.maps.Marker({
    position: uluru,
    map: map,
  });
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

// Initialize and add the map
function initMap() {
  // The location of Uluru
  const uluru = { lat: -25.344, lng: 131.031 };
  // The map, centered at Uluru
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: uluru,
  });
  // The marker, positioned at Uluru
  const marker = new google.maps.Marker({
    position: uluru,
    map: map,
  });
}

window.initMap = initMap;

CSS;

/* Set the size of the div element that contains the map */
#map {
  height: 400px; /* The height is 400 pixels */
  width: 100%; /* The width is the width of the web page */
}

HTML

<html>
  <head>
    <title>Add Map</title>
    <script src="https://polyfill.io/v3/polyfill.min.js?features=default"></script>

    <link rel="stylesheet" type="text/css" href="./style.css" />
    <script type="module" src="./index.js"></script>
  </head>
  <body>
    <h3>My Google Maps Demo</h3>
    <!--The div element for the map -->
    <div id="map"></div>

    <!-- 
      The `defer` attribute causes the callback to execute after the full HTML
      document has been parsed. For non-blocking uses, avoiding race conditions,
      and consistent behavior across browsers, consider loading using Promises
      with https://www.npmjs.com/package/@googlemaps/js-api-loader.
      -->
    <script
      src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
      defer
    ></script>
  </body>
</html>

Fragment

Omówienie kodu

W poniższym kodzie tag script ładuje interfejs API z określonego adresu URL.

<script async
    src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>

W powyższym kodzie parametr callback wykonuje funkcję initMap po wczytaniu interfejsu API. Atrybut async umożliwia przeglądarce analizowanie pozostałej części strony podczas wczytywania interfejsu API. Po załadowaniu przeglądarki przeglądarka wstrzyma i natychmiast uruchomi skrypt. Parametr key zawiera klucz interfejsu API.

Jeżeli nie wiesz, jak to zrobić, przejdź do sekcji Krok 3. Uzyskaj klucz interfejsu API.

Poniższy kod zawiera funkcję initMap, która inicjuje i dodaje mapę podczas wczytywania strony. Użyj tagu script, aby dołączyć własny kod JavaScript zawierający funkcję initMap.

  function initMap() {}

Dodaj funkcję document.getElementById(), aby znaleźć mapę div na stronie internetowej.

Poniższy kod tworzy nowy obiekt map Google i dodaje do mapy właściwości, w tym środek i poziom powiększenia. Informacje o innych opcjach właściwości znajdziesz w dokumentacji.

TypeScript

// The location of Uluru
const uluru = { lat: -25.344, lng: 131.031 };
// The map, centered at Uluru
const map = new google.maps.Map(
  document.getElementById("map") as HTMLElement,
  {
    zoom: 4,
    center: uluru,
  }
);

JavaScript

// The location of Uluru
const uluru = { lat: -25.344, lng: 131.031 };
// The map, centered at Uluru
const map = new google.maps.Map(document.getElementById("map"), {
  zoom: 4,
  center: uluru,
});

W powyższym kodzie new google.maps.Map() tworzy nowy obiekt Map Google. Właściwość center wskazuje interfejsowi API, gdzie ma znaleźć się mapa.

Dowiedz się więcej o uzyskiwaniu współrzędnych szerokości i długości geograficznej lub przekształcaniu adresu we współrzędne geograficzne.

Właściwość zoom określa poziom powiększenia mapy. Powiększenie: 0 oznacza najniższy powiększenie Ziemi. Ustaw większą wartość powiększenia, aby powiększyć obraz Ziemi w wyższej rozdzielczości.

Poniższy kod umieszcza na mapie znacznik. Właściwość position określa położenie znacznika.

TypeScript

// The marker, positioned at Uluru
const marker = new google.maps.Marker({
  position: uluru,
  map: map,
});

JavaScript

// The marker, positioned at Uluru
const marker = new google.maps.Marker({
  position: uluru,
  map: map,
});

Więcej informacji o znacznikach:

Krok 3. Uzyskaj klucz interfejsu API

W tej sekcji dowiesz się, jak uwierzytelniać aplikację w interfejsie Maps JavaScript API za pomocą własnego klucza interfejsu API.

Aby uzyskać klucz interfejsu API, wykonaj te czynności:

  1. Otwórz Google Cloud Console.

  2. Utwórz lub wybierz projekt.

  3. Kliknij Dalej, aby włączyć interfejs API i powiązane usługi.

  4. Na stronie Dane logowania uzyskaj klucz interfejsu API (i ustaw ograniczenia klucza interfejsu API). Uwaga: jeśli masz już klucz interfejsu API bez ograniczeń lub klucz z ograniczeniami dotyczącymi przeglądarki, możesz go użyć.

  5. Aby zapobiec kradzieży limitu i zabezpieczyć klucz interfejsu API, zapoznaj się z sekcją Używanie kluczy interfejsu API.

  6. Włącz płatności. Więcej informacji znajdziesz w artykule Użycie i płatności.

  7. Skopiuj cały kod z tego samouczka do edytora tekstu.

  8. Zamień wartość parametru key w adresie URL na własny klucz interfejsu API (właśnie uzyskany klucz interfejsu API).

    <script async
        src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
    </script>
    

  9. Zapisz ten plik z nazwą zakończoną na .html, np. index.html.

  10. Wczytaj plik HTML w przeglądarce, przeciągając go z komputera do przeglądarki. Możesz też kliknąć dwukrotnie plik. Działa to na większości systemów operacyjnych.

Wskazówki i rozwiązywanie problemów

  • Możesz dostosować opcje, takie jak styl i właściwości, aby dostosować mapę. Więcej informacji o dostosowywaniu map znajdziesz w przewodnikach po stylowaniu i rysowaniu na mapach.
  • Za pomocą konsoli Narzędzi dla programistów w przeglądarce możesz testować i uruchamiać kod, czytać raporty o błędach i rozwiązywać problemy z kodem.
  • Aby otworzyć konsolę w Chrome, użyj tych skrótów klawiszowych:
    Command+Option+J (na Macu) lub Control+Shift+J (w systemie Windows).
  • Wykonaj poniższe czynności, aby poznać szerokość i długość geograficzną lokalizacji w Mapach Google.

    1. Otwórz Mapy Google w przeglądarce.
    2. Kliknij prawym przyciskiem myszy dokładną lokalizację na mapie, której współrzędne chcesz sprawdzić.
    3. Z wyświetlonego menu kontekstowego wybierz Co tu jest?. Na dole ekranu wyświetli się karta. Znajdź szerokość i długość geograficzną w ostatnim wierszu karty.
  • Możesz zmienić adres na szerokość i długość geograficzną, korzystając z usługi geokodowania. Przewodniki dla programistów zawierają szczegółowe informacje o pierwszych krokach z usługą geokodowania.