Apa itu Map di JavaScript?
Maps JavaScript API memungkinkan Anda menyesuaikan peta dengan konten dan gambar Anda sendiri untuk ditampilkan di halaman web dan perangkat seluler. Maps JavaScript API menampilkan empat jenis peta dasar (roadmap, satelit, hibrida, dan medan) yang dapat Anda ubah menggunakan lapisan dan gaya, kontrol dan peristiwa, serta berbagai layanan dan library. Show
AudiensDokumentasi ini didesain untuk orang yang memahami pemrograman JavaScript dan konsep pemrograman berorientasi objek. Anda juga harus memahami Google Maps dari sudut pandang pengguna. Ada banyak tutorial JavaScript yang tersedia di Web. Dokumentasi konseptual ini dirancang untuk memungkinkan Anda secara cepat mulai menjelajahi dan mengembangkan aplikasi dengan Maps JavaScript API. Kami juga memublikasikan Referensi Maps JavaScript API. Halo, DuniaCara termudah untuk mulai mempelajari Maps JavaScript API adalah melihat contoh sederhana. Contoh berikut menampilkan peta yang berpusat di Sydney, New South Wales, Australia.
Mencoba ContohStackblitz.com CodeSandbox.io JSFiddle.net Google Cloud Shell Bahkan dalam contoh sederhana ini, ada beberapa hal yang perlu diperhatikan:
Langkah-langkah ini dijelaskan di bawah. Mendeklarasikan Aplikasi Anda sebagai HTML5Sebaiknya deklarasikan /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }1 sesungguhnya dalam aplikasi web Anda. Dalam contoh di sini, kami telah mendeklarasikan aplikasi sebagai HTML5 menggunakan /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }1 HTML5 sederhana seperti yang ditampilkan di bawah ini: Sebagian besar browser saat ini akan merender konten yang dideklarasikan dengan /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }1 ini dalam "mode standar" yang berarti bahwa aplikasi Anda harus mematuhi persyaratan lintas browser. /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }1 juga dirancang untuk menurunkan tingkat secara halus; browser yang tidak memahaminya akan mengabaikannya, dan menggunakan "mode quirks" untuk menampilkan kontennya. Perhatikan, beberapa CSS yang bekerja dalam quirks mode tidak valid dalam mode standar. Secara khusus, semua ukuran berbasis-persentase harus mewarisi dari elemen blok induk, dan jika ada pendahulunya yang gagal menetapkan ukuran, maka dianggap berukuran 0 x 0 piksel. Oleh karena itu, kami menyertakan deklarasi /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }5 berikut: Deklarasi CSS ini menunjukkan bahwa penampung peta /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }6 (dengan ID /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }7) harus menempati 100% dari tinggi dari bodi HTML. Perhatikan bahwa kami juga harus mendeklarasikan persentase tersebut untuk /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }8 dan /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }9 secara khusus. Memuat Maps JavaScript APIMaps JavaScript API dimuat menggunakan tag/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }0, yang dapat ditambahkan secara inline di file HTML atau secara dinamis menggunakan file JavaScript terpisah. Sebaiknya Anda meninjau kedua pendekatan tersebut, dan memilih salah satu pendekatan yang paling sesuai dengan struktur kode dalam project Anda. Pemuatan InlineUntuk memuat Maps JavaScript API secara inline dalam file HTML, tambahkan tag /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }0 seperti yang ditunjukkan di bawah. Pemuatan DinamisUntuk memuat Maps JavaScript API secara dinamis menggunakan file JavaScript terpisah, lihat contoh di bawah. Pendekatan ini memungkinkan Anda menangani semua kode untuk menangani API dari file 2 terpisah, dan setara dengan menambahkan tag skrip secara inline. // Create the script tag, set the appropriate attributes var script = document.createElement('script'); script.src = 'https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap'; script.async = true; // Attach your callback function to the `window` object window.initMap = function() { // JS API is loaded and available }; // Append the 'script' element to 'head' document.head.appendChild(script); Pemuatan DinamisPaket @googlemaps/js-api-loader tersedia untuk membuat pengalaman pemuatan dinamis yang lebih lancar. Aplikasi ini dapat diinstal melalui NPM dengan hal berikut: npm install @googlemaps/js-api-loader Paket ini dapat diimpor ke dalam aplikasi dengan: import { Loader } from "@googlemaps/js-api-loader" Loader mengekspos antarmuka callback dan Promise. Berikut ini adalah contoh penggunaan metode Promise default 3.
Atribut Tag SkripPerhatikan pada contoh di atas bahwa beberapa atribut ditetapkan pada tag /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }0, yang direkomendasikan. Berikut adalah penjelasan dari setiap atribut.
LibrarySaat memuat Maps JavaScript API melalui URL, Anda dapat memilih untuk memuat library tambahan melalui penggunaan parameter URL 0. Library adalah modul kode yang menyediakan fungsi tambahan ke Maps JavaScript API utama, tetapi tidak dimuat kecuali jika Anda memintanya secara khusus. Untuk informasi selengkapnya, lihat Library di Maps JavaScript API. Memuat API secara sinkronDalam tag /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }0 yang memuat Maps JavaScript API, atribut 2 dan parameter 7 dapat dihilangkan. Hal ini akan menyebabkan pemuatan API diblokir hingga API selesai didownload. Ini mungkin akan memperlambat pemuatan halaman Anda. Namun itu berarti Anda bisa menulis tag script berikutnya dengan anggapan API tersebut sudah dimuat. Penting: Lihat panduan Kebijakan Keamanan Konten untuk mempelajari lebih lanjut cara mengonfigurasi CSP untuk Maps JavaScript API.Elemen DOM Petalet map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;2 Agar peta ditampilkan pada halaman web, kita harus memesan tempatnya. Umumnya, kami melakukannya dengan membuat elemen let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;8 bernama dan mendapatkan referensi ke elemen ini dalam document object model (DOM) browser. Dalam contoh di atas, kita menggunakan CSS untuk menetapkan ketinggian div peta ke "100%". Ini akan diperluas agar ukurannya pada perangkat seluler sesuai. Anda mungkin perlu menyesuaikan nilai-nilai lebar dan tinggi berdasarkan ukuran layar dan padding browser. Perhatikan, div biasanya mengambil lebarnya dari elemen yang dimuatnya, dan div kosong biasanya memiliki ketinggian 0. Karena itu, Anda harus selalu menetapkan tinggi secara eksplisit pada /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }6. Opsi PetaAda dua opsi yang diperlukan untuk setiap peta: 6 dan 7. let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;3 Tingkat ZoomResolusi awal untuk menampilkan peta ditetapkan oleh properti 7, dengan zoom 9 sesuai dengan peta Bumi yang diperkecil sepenuhnya, dan tingkat zoom yang lebih besar akan memperbesar dengan resolusi yang lebih tinggi. let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;4 Menampilkan peta seluruh Bumi sebagai gambar tunggal akan memerlukan peta yang teramat besar, atau peta kecil dengan resolusi sangat rendah. Akibatnya, gambar peta dalam Google Maps dan Maps JavaScript API akan dipecah menjadi "ubin" peta dan "tingkat zoom". Pada tingkat zoom rendah, satu rangkaian kecil ubin peta mencakup area yang luas; di tingkat zoom yang lebih tinggi, ubin memiliki resolusi lebih tinggi dan mencakup area yang lebih kecil. Daftar berikut menampilkan perkiraan tingkat detail yang akan Anda lihat di setiap tingkat zoom:
Tiga gambar berikut memperlihatkan Tokyo dari lokasi yang sama pada tingkat zoom 0, 7 dan 18. Untuk informasi tentang cara Maps JavaScript API memuat ubin berdasarkan tingkat zoom saat ini, lihat panduan untuk . Objek Petalet map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;5 Class JavaScript yang mewakili peta adalah class 0. Objek di class ini mendefinisikan sebuah peta pada halaman. (Anda bisa membuat lebih dari satu instance class ini — setiap objek akan mendefinisikan peta terpisah pada halaman.) Kita membuat instance baru dari class ini menggunakan operator 1 JavaScript. Saat membuat instance peta baru, Anda menetapkan elemen HTML /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }6 di halaman sebagai penampung untuk peta. Node HTML adalah turunan dari objek 3 JavaScript, dan kita memperoleh referensi ke elemen ini melalui metode 4. Kode ini menentukan variabel (bernama /* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }7) dan menetapkan variabel tersebut ke objek 0 baru. Fungsi 7 dikenal sebagai konstruktor dan definisinya ditampilkan di bawah ini:KonstruktorDeskripsi 8Membuat peta baru dalam penampung HTML tertentu - biasanya elemen DIV - menggunakan parameter (opsional) yang diteruskan. Memecahkan masalahPengingat: Untuk menggunakan Maps JavaScript API:
Error Kunci API dan PenagihanPada kondisi tertentu, peta yang lebih gelap, atau gambar Street View 'negatif', yang diberi watermark dengan teks "hanya untuk tujuan pengembangan", mungkin akan ditampilkan. Perilaku ini biasanya mengindikasikan terjadi masalah pada kunci API atau penagihan. Untuk menggunakan produk Google Maps Platform, penagihan harus diaktifkan di akun Anda, dan semua permintaan harus menyertakan kunci API yang valid. Alur berikut akan membantu Anda memecahkan masalah ini: Apakah Anda menggunakan kunci API?Saya tidak yakin. Bagaimana cara memeriksa apakah saya menggunakan kunci API?Kunci API diteruskan sebagai parameter 6 pada URL yang digunakan untuk memuat Maps JavaScript API. Berikut adalah beberapa opsi untuk memeriksa apakah Anda menggunakan kunci API:
Untuk developer web:
Tidak, saya tidak menggunakan kunci API.Untuk mendapatkan kunci API, klik tombol di bawah ini. Jika Anda tidak melihat penyiapan terpandu, ikuti petunjuk lengkap pada . Ya, saya menggunakan kunci API.Bagus! Sekarang periksa apakah akun penagihan telah dikaitkan ke project Anda. Apakah akun penagihan dikaitkan ke project Anda?Saya tidak yakin. Bagaimana cara memeriksa apakah akun penagihan dikaitkan ke project saya?Buka halaman Billing di Google Cloud Console dan pilih project tempat kunci API Anda dibuat. Untuk mengonfirmasi bahwa kunci tersebut terkait dengan project:
Setelah menemukan project Anda di Cloud Console, periksa apakah akun penagihan telah dikaitkan dengan membuka bagian Billing pada menu samping kiri. Tidak, akun penagihan tidak dikaitkan ke project saya.Buka halaman Enable Billing di Cloud Console dan tambahkan akun penagihan ke project Anda. Untuk informasi tambahan, lihat Memulai Google Maps Platform. Ya, akun penagihan telah dikaitkan ke project saya.Bagus! Sekarang pastikan bahwa metode penagihan yang diberikan sudah valid. Apakah metode penagihan yang diberikan sudah tidak valid (misalnya kartu kredit yang sudah tidak berlaku)?Anda dapat menambahkan, menghapus, atau memperbarui metode pembayaran di Cloud Console. Apakah ada kelebihan pada batas harian yang Anda tetapkan sendiri pada API?Jika Anda telah menetapkan batas harian pada API, yang umumnya dilakukan untuk mencegah peningkatan tak terduga, Anda dapat memperbaiki masalah ini dengan . Anda dapat memeriksa batas harian dengan membuka APIs & Services Dashboard di Cloud Console. Setelah membukanya:
Apakah kunci API Anda memiliki batasan alamat IP?Kunci API dengan pembatasan alamat IP hanya dapat digunakan pada layanan web yang ditujukan untuk penggunaan dari sisi server (seperti Geocoding API dan Web Service API lainnya). Sebagian besar layanan web ini memiliki layanan yang setara pada Maps JavaScript API (misalnya, lihat Layanan Geocoding). Untuk menggunakan layanan sisi klien Maps JavaScript API, Anda harus membuat kunci API terpisah yang dapat diamankan menggunakan pembatasan perujuk HTTP (lihat ). Jika kode Anda tidak berfungsi:Untuk membantu Anda menyiapkan dan menjalankan kode peta, Brendan Kenny dan Mano Marks menunjukkan beberapa kesalahan umum dan cara memperbaikinya di video ini. Apa itu Reduce di JavaScript?reduce() merupakan method array di JavaScript yang mengeksekusi fungsi callback pada setiap elemen array, nilai hasil kalkulasi pada elemen sebelumnya digunakan untuk melakukan kalkulasi pada elemen berikutnya. Setelah menjalankan fungsi callback untuk semua elemen array, method ini menghasilkan nilai tunggal.
Method apa yang dapat kita gunakan untuk memilah elemen array berdasarkan kondisi tertentu dan akan membuat sebuah array baru?filter()
Metode ini berfungsi untuk membuat sebuah array baru dengan memperhatikan kondisi tertentu pada setiap elemen dari array yang sudah ada.
|