Hướng dẫn javascript visualizer - trình hiển thị javascript
API JavaScript bản đồ cho phép bạn tùy chỉnh bản đồ với nội dung và hình ảnh của riêng bạn để hiển thị trên các trang web và thiết bị di động. Bản đồ API JavaScript có bốn loại bản đồ cơ bản (lộ trình, vệ tinh, lai và địa hình) mà bạn có thể sửa đổi bằng cách sử dụng các lớp và kiểu dáng, điều khiển và sự kiện, và các dịch vụ và thư viện khác nhau. Show
Sự tiếp kiếnTài liệu này được thiết kế cho những người quen thuộc với lập trình JavaScript và các khái niệm lập trình hướng đối tượng. Bạn cũng nên quen thuộc với Google Maps theo quan điểm của người dùng. Có nhiều hướng dẫn JavaScript có sẵn trên web. Tài liệu khái niệm này được thiết kế để cho phép bạn nhanh chóng bắt đầu khám phá và phát triển các ứng dụng với API JavaScript bản đồ. Chúng tôi cũng xuất bản tham chiếu API JavaScript bản đồ. Chào thế giớiCách dễ nhất để bắt đầu tìm hiểu về API JavaScript bản đồ là xem một ví dụ đơn giản. Ví dụ sau đây hiển thị một bản đồ tập trung vào Sydney, New South Wales, Úc.
Xem ví dụ Hãy thử mẫuNgay cả trong ví dụ đơn giản này, có một vài điều cần lưu ý:
Các bước này được giải thích dưới đây. Tuyên bố ứng dụng của bạn là HTML5Chúng tôi khuyên bạn nên khai báo một /* * 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 thực sự trong ứng dụng web của bạn. Trong các ví dụ ở đây, chúng tôi đã tuyên bố các ứng dụng của mình là HTML5 bằng cách sử dụng HTML5 /* * 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 đơn giản như hình dưới đây: Hầu hết các trình duyệt hiện tại sẽ hiển thị nội dung được khai báo với /* * 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 này trong "Chế độ tiêu chuẩn", điều đó có nghĩa là ứng dụng của bạn phải tuân thủ trình duyệt chéo hơn. /* * 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 cũng được thiết kế để suy giảm duyên dáng; Các trình duyệt không hiểu nó sẽ bỏ qua nó và sử dụng "chế độ kỳ quặc" để hiển thị nội dung của họ. Lưu ý rằng một số CSS hoạt động trong chế độ Quirks không hợp lệ trong chế độ Tiêu chuẩn. Nói chung, tất cả các kích thước dựa trên phần trăm phải kế thừa từ các phần tử khối cha mẹ và nếu bất kỳ tổ tiên nào không chỉ định kích thước, chúng được cho là có kích thước ở mức 0 x 0 pixel. Vì lý do đó, chúng tôi bao gồm tuyên bố /* * 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 sau đây: Tuyên bố CSS này chỉ ra rằng thùng chứa bản đồ /* * 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 (với 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) sẽ chiếm 100% chiều cao của thân HTML. Lưu ý rằng chúng tôi phải khai báo cụ thể các tỷ lệ phần trăm đó cho /* * 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 và /* * 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. Đang tải các bản đồ API JavaScriptAPI JavaScript bản đồ được tải bằng thẻ /* * 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, có thể được thêm nội tuyến trong tệp HTML của bạn hoặc sử dụng tệp JavaScript riêng. Chúng tôi khuyên bạn nên xem xét cả hai phương pháp và chọn phương pháp phù hợp nhất cho cách thức cấu trúc mã trong dự án của bạn. Tải nội tuyếnĐể tải API JavaScript bản đồ nội tuyến trong tệp HTML, hãy thêm thẻ /* * 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 như hiển thị bên dưới. Tải độngĐể tự động tải các bản đồ API JavaScript nội tuyến bằng cách sử dụng tệp JavaScript riêng biệt, hãy xem ví dụ bên dưới. Cách tiếp cận này cho phép bạn xử lý tất cả các mã của mình để làm việc với API từ một tệp 2 riêng biệt và tương đương với việc thêm thẻ tập lệnh nội tuyến. // 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); Tải độngĐể tự động tải các bản đồ API JavaScript nội tuyến bằng cách sử dụng tệp JavaScript riêng biệt, hãy xem ví dụ bên dưới. Cách tiếp cận này cho phép bạn xử lý tất cả các mã của mình để làm việc với API từ một tệp 2 riêng biệt và tương đương với việc thêm thẻ tập lệnh nội tuyến. npm install @googlemaps/js-api-loader Gói @googlemaps/js-api-loader có sẵn để tạo trải nghiệm tải động liền mạch hơn. Nó có thể được cài đặt thông qua NPM với các mục sau: import { Loader } from "@googlemaps/js-api-loader" Gói này có thể được nhập vào ứng dụng với:
CSSHTML
Ngay cả trong ví dụ đơn giản này, có một vài điều cần lưu ý:Chúng tôi tuyên bố ứng dụng là HTML5 bằng cách sử dụng khai báo let map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;7. Tải đồng bộ APITrong thẻ /* * 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 tải API JavaScript bản đồ, có thể bỏ qua thuộc tính 2 và tham số 7. Điều này sẽ khiến việc tải API chặn cho đến khi API được tải xuống. Điều này có thể sẽ làm chậm tải trang của bạn. Nhưng điều đó có nghĩa là bạn có thể viết các thẻ tập lệnh tiếp theo giả sử rằng API đã được tải. Bản đồ các yếu tố DOMlet map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;2 Để bản đồ hiển thị trên một trang web, chúng tôi phải đặt chỗ cho nó. Thông thường, chúng tôi thực hiện điều này bằng cách tạo một phần tử 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 có tên và có được tham chiếu đến phần tử này trong mô hình đối tượng tài liệu của trình duyệt (DOM). Trong ví dụ trên, chúng tôi đã sử dụng CSS để đặt chiều cao của DIV bản đồ thành "100%". Điều này sẽ mở rộng để phù hợp với kích thước trên thiết bị di động. Bạn có thể cần điều chỉnh các giá trị chiều rộng và chiều cao dựa trên màn hình và đệm của trình duyệt. Lưu ý rằng các div thường lấy chiều rộng của chúng từ phần tử chứa của chúng và các div trống thường có chiều cao 0. Vì lý do này, bạn phải luôn luôn đặt chiều cao trên /* * 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 một cách rõ ràng. Tùy chọn bản đồCó hai tùy chọn cần thiết cho mỗi bản đồ: 6 và 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 Mức thu phóngĐộ phân giải ban đầu để hiển thị bản đồ được đặt bởi thuộc tính 7, trong đó zoom 9 tương ứng với bản đồ của trái đất được phóng to hoàn toàn và các mức thu phóng lớn hơn thu phóng ở độ phân giải cao hơn. 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 Cung cấp một bản đồ của toàn bộ trái đất như một hình ảnh duy nhất sẽ yêu cầu một bản đồ to lớn hoặc một bản đồ nhỏ với độ phân giải rất thấp. Do đó, bản đồ hình ảnh trong Google Maps và API JavaScript bản đồ được chia thành bản đồ "Gạch" và "cấp độ zoom". Ở mức độ zoom thấp, một bộ gạch nhỏ có diện tích rộng; Ở mức độ zoom cao hơn, gạch có độ phân giải cao hơn và bao gồm một khu vực nhỏ hơn. Danh sách sau đây cho thấy mức độ chi tiết gần đúng mà bạn có thể mong đợi để thấy ở mỗi cấp độ zoom:
Ba hình ảnh sau đây phản ánh cùng một vị trí của Tokyo ở các cấp độ zoom 0, 7 và 18.
Để biết thông tin về cách các bản đồ API JavaScript tải các gạch dựa trên mức thu phóng hiện tại, hãy xem Hướng dẫn về Tọa độ MAP và TILE. Đối tượng bản đồlet map; function initMap() { map = new google.maps.Map(document.getElementById("map"), { center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); } window.initMap = initMap;5 Lớp JavaScript đại diện cho bản đồ là lớp 0. Đối tượng của lớp này xác định một bản đồ duy nhất trên một trang. . Khi bạn tạo một thể hiện bản đồ mới, bạn chỉ định phần tử /* * 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 HTML trong trang dưới dạng container cho bản đồ. Các nút HTML là trẻ em của đối tượng JavaScript 3 và chúng tôi có được tham chiếu đến phần tử này thông qua phương thức 4. Mã này xác định một biến (được đặt tên /* * 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) và gán biến đó cho một đối tượng 0 mới. Hàm 7 được gọi là hàm tạo và định nghĩa của nó được hiển thị bên dưới:
Xử lý sự cốKhóa API và lỗi thanh toánTrong một số trường hợp nhất định, một bản đồ tối hoặc hình ảnh xem đường phố 'tiêu cực', được ghi hình bằng văn bản "chỉ có mục đích phát triển", có thể được hiển thị. Hành vi này thường chỉ ra các vấn đề với khóa API hoặc thanh toán. Để sử dụng các sản phẩm nền tảng Google Maps, việc thanh toán phải được bật trên tài khoản của bạn và tất cả các yêu cầu phải bao gồm khóa API hợp lệ. Lưu lượng sau đây sẽ giúp khắc phục sự cố này: Bạn đang sử dụng khóa API?Tôi không chắc. Làm cách nào để kiểm tra xem tôi có đang sử dụng khóa API không?Một khóa API được truyền dưới dạng tham số 6 trong URL được sử dụng để tải API JavaScript bản đồ. Dưới đây là một vài tùy chọn để kiểm tra xem bạn có đang sử dụng khóa API không:
Đối với các nhà phát triển web:
Không, tôi không sử dụng khóa API.Để nhận khóa API, nhấp vào nút bên dưới. Nếu bạn không thấy thiết lập có hướng dẫn, hãy làm theo các hướng dẫn đầy đủ khi bắt đầu với nền tảng Google Maps. Bắt đầu Vâng, tôi đang sử dụng khóa API.Tuyệt quá! Hãy để tiếp tục và kiểm tra xem một tài khoản thanh toán có được đính kèm với dự án của bạn không. Là một tài khoản thanh toán được đính kèm với dự án của bạn?Tôi không chắc. Làm thế nào tôi có thể kiểm tra xem tài khoản thanh toán có được đính kèm với dự án của tôi không?Truy cập trang thanh toán trong bảng điều khiển Google Cloud và chọn dự án theo đó khóa API của bạn được tạo. Để xác nhận khóa được liên kết với dự án:
Khi bạn đã định vị dự án của mình trong bảng điều khiển đám mây, hãy kiểm tra xem tài khoản thanh toán có được đính kèm bằng cách điều hướng đến phần thanh toán trong menu bên trái không. Không, một tài khoản thanh toán không được đính kèm với dự án của tôi.Truy cập trang Bật thanh toán trong bảng điều khiển đám mây và thêm tài khoản thanh toán vào dự án của bạn. Để biết thêm thông tin, hãy xem Bắt đầu với nền tảng Google Maps. Có, một tài khoản thanh toán được đính kèm với dự án của tôi.Tuyệt quá! Hãy để đảm bảo phương thức thanh toán được cung cấp là hợp lệ. Phương thức thanh toán được cung cấp không còn hợp lệ (ví dụ: thẻ tín dụng đã hết hạn)?Bạn có thể thêm, xóa hoặc cập nhật phương thức thanh toán trong bảng điều khiển đám mây. Có giới hạn hàng ngày tự áp đặt trên API không?Nếu bạn đã đặt giới hạn hàng ngày cho bất kỳ API nào của bạn, điều này là phổ biến để ngăn chặn sự gia tăng bất ngờ, bạn có thể giải quyết điều này bằng cách tăng giới hạn hàng ngày của bạn. Bạn có thể kiểm tra giới hạn hàng ngày của mình bằng cách truy cập bảng điều khiển API & Services trong bảng điều khiển đám mây. Một khi ở đó:
Khóa API của bạn có giới hạn địa chỉ IP không?Các khóa API có hạn chế địa chỉ IP chỉ có thể được sử dụng với các dịch vụ web được sử dụng để sử dụng từ phía máy chủ (chẳng hạn như API mã hóa địa lý và API dịch vụ web khác). Hầu hết các dịch vụ web này có các dịch vụ tương đương trong API JavaScript bản đồ (ví dụ: xem dịch vụ mã hóa địa lý). Để sử dụng các dịch vụ phía máy khách API JavaScript, bạn sẽ cần tạo khóa API riêng biệt có thể được bảo mật bằng hạn chế giới thiệu HTTP (xem GET, Thêm và hạn chế khóa API).IP addresses restriction can only be used with web services that are intended for use from the server side (such as the Geocoding API and other Web Service APIs). Most of these web services have equivalent services within the Maps JavaScript API (for example, see the Geocoding Service). To use the Maps JavaScript API client side services, you will need to create a separate API key which can be secured with an HTTP referrers restriction (see Get, add, and restrict an API key). Nếu mã của bạn không hoạt động:Để giúp bạn có được mã bản đồ và chạy, Brendan Kenny và Mano đánh dấu chỉ ra một số lỗi phổ biến và cách khắc phục chúng trong video này.
|