Tổng quan
Google Maps Platform có sẵn cho web (JS, TS), Android và iOS, đồng thời cũng cung cấp các API dịch vụ web để nhận thông tin về địa điểm, chỉ đường và khoảng cách. Các mẫu trong hướng dẫn này được viết cho một nền tảng, nhưng các đường liên kết đến tài liệu cũng được cung cấp để triển khai trên các nền tảng khác.
Trình tạo nhanh trong Google Cloud Console giúp bạn nhanh chóng tạo một công cụ định vị, bao gồm cả việc nhập trang thông tin trong Trang doanh nghiệp và tự động nhúng các đường liên kết đặt lịch hẹn từ nhà cung cấp bên thứ ba. Giao diện người dùng tương tác cho phép bạn tạo mã và triển khai lên Đám mây chỉ trong vài phút.
Người dùng của bạn muốn nghiên cứu các sản phẩm và dịch vụ trên mạng cũng như muốn tìm vị trí tốt nhất và thuận tiện nhất để ghé thăm, đặt lịch hẹn hoặc đặt hàng. Họ muốn đến vị trí của bạn càng nhanh càng tốt và bạn muốn cung cấp cho họ những trải nghiệm trực tuyến phong phú, giúp tăng số lượt ghé thăm các địa điểm thực tế của bạn, củng cố sự hài lòng của người dùng và giảm số lượng cuộc gọi hỗ trợ. Bạn cũng muốn đo lường mức độ thành công của công cụ định vị để xác định xem khách hàng có thể tìm thấy địa điểm của bạn hay không, cũng như muốn biết cần cải thiện ở đâu.
Locator Plus – hướng dẫn và mẹo tuỳ chỉnh mà chúng tôi cung cấp trong chủ đề này – là sự kết hợp tối ưu giữa các API của Nền tảng Google Maps nhằm tạo ra trải nghiệm người dùng tuyệt vời cho công cụ định vị. Khi làm theo các phương pháp này, bạn có thể giúp người dùng tìm thấy vị trí của bạn trên bản đồ, xem thông tin chi tiết họ cần để đưa ra quyết định và chỉ đường cho họ, cho dù họ đang lái xe, đi xe đạp, đi bộ hay sử dụng phương tiện công cộng.
Đối với người dùng Locator Plus, trang tổng quan về số liệu phân tích sẽ giúp bạn phân tích và tạo thông tin chi tiết từ dữ liệu của mình, giúp bạn hiểu rõ mức độ tương tác của người mua sắm với công cụ định vị cửa hàng của bạn. Để truy cập vào báo cáo này, hãy chuyển đến mục Báo cáo mức độ tương tác trên bảng điều khiển. Để biết thêm thông tin chi tiết về báo cáo này, hãy xem bài viết về Báo cáo mức độ tương tác.
Sơ đồ dưới đây cho thấy các API cốt lõi liên quan đến việc triển khai Locator Plus. Sơ đồ này cũng cho thấy một cơ sở dữ liệu về dữ liệu vị trí của riêng bạn mà bạn có thể kết hợp với Thông tin chi tiết về địa điểm nhằm cung cấp cho người dùng bộ thông tin tốt nhất và đầy đủ nhất có thể. (Nhấp để phóng to.)
![Ở bên trái của biểu đồ, một trình duyệt web cho thấy một bản đồ có cửa sổ bật lên "Thông tin chi tiết về địa điểm".
Bên phải biểu đồ là danh sách các API cung cấp chức năng khác nhau: API JavaScript của Maps dành cho nội dung và hình ảnh trực quan về vị trí, kiểu bản đồ, điểm đánh dấu bản đồ, Chế độ xem đường phố tuỳ chỉnh và hiển thị tuyến đường. Đặt tính năng Tự động hoàn thành để hoàn thành địa chỉ và chức năng nhập ở phía trước. API địa điểm và mã hoá địa lý cho vị trí địa chỉ. API Ma trận khoảng cách để xếp hạng các địa điểm theo khoảng cách, thời gian và
phương tiện đi lại. API Chỉ đường để hiển thị một tuyến đường dựa trên thời gian di chuyển và phương tiện đi lại.
Ở giữa sơ đồ, một biểu tượng kho dữ liệu đại diện cho các điểm dữ liệu vị trí tuỳ chỉnh lên tới biểu tượng máy chủ web với mũi tên hai đầu cho biết hoạt động đọc và ghi dữ liệu giữa máy chủ web và kho dữ liệu. Các mũi tên giữa trình duyệt web và API đi qua máy chủ web làm bên trung gian.](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/locator_arch_diagram.png?authuser=7&hl=vi)
Bật API
Để triển khai các phương pháp này, bạn phải bật các API sau trong Google Cloud Console: Để biết thêm thông tin về cách thiết lập, hãy xem bài viết Bắt đầu sử dụng Nền tảng Google Maps.Các phần triển khai
Sau đây là các phương pháp và cách tuỳ chỉnh mà chúng tôi sẽ đề cập trong chủ đề này.
- Biểu tượng dấu kiểm là một phương pháp cốt lõi.
- Biểu tượng dấu sao là không bắt buộc nhưng bạn nên tuỳ chỉnh để nâng cao giải pháp.
Hiển thị vị trí của bạn trên bản đồ tương tác |
Tạo bản đồ cho phép người dùng xem thông tin chi tiết về vị trí, di chuyển xung quanh và phóng to và thu nhỏ. Hoặc khám phá giải pháp Quick Builder Locator Plus để nhanh chóng tạo bản đồ, bao gồm cả việc dễ dàng nhập thông tin doanh nghiệp từ trang thông tin Trang doanh nghiệp , nhúng đường liên kết đặt lịch hẹn và triển khai trên Google Cloud Storage. |
|
Cung cấp thông tin chi tiết về địa điểm | Sau khi người dùng tìm thấy các vị trí gần bạn nhất trên bản đồ, hãy cung cấp cho họ Thông tin chi tiết có ý nghĩa về địa điểm về các vị trí đó để giúp họ đưa ra quyết định. | |
Hiển thị vị trí từ chế độ xem 45° | Cung cấp cho người dùng hình ảnh rõ hơn về vị trí của bạn ở chế độ xem vệ tinh từ góc 45 độ. | |
Xác định vị trí của người dùng | Thêm chức năng nhập theo thao tác để cải thiện trải nghiệm người dùng trên tất cả các nền tảng và cải thiện độ chính xác của địa chỉ chỉ với thao tác nhấn phím tối thiểu. | |
Hiển thị thời gian di chuyển và khoảng cách đến địa điểm gần nhất | Tính toán quãng đường và thời gian di chuyển cho nhiều điểm xuất phát và điểm đến, (không bắt buộc) chỉ định nhiều hình thức di chuyển như đi bộ, lái xe hoặc đạp xe. | |
Giúp người dùng đặt lịch hẹn |
Cho phép người dùng đặt lịch hẹn trong bảng điều khiển bên Chi tiết địa điểm. Hoặc khám phá giải pháp Quick Builder Locator Plus để nhanh chóng tạo bản đồ, bao gồm cả việc dễ dàng nhập thông tin doanh nghiệp từ trang thông tin Trang doanh nghiệp , nhúng đường liên kết đặt lịch hẹn và triển khai trên Google Cloud Storage. |
|
Giới thiệu sản phẩm/dịch vụ tại cửa hàng địa phương | Hiển thị các ưu đãi tại địa phương mà người dùng có thể nhấp vào trong bảng điều khiển bên Thông tin chi tiết về địa điểm. | |
Cung cấp thông tin đường đi | Xem dữ liệu về đường đi từ điểm khởi hành đến điểm đến bằng nhiều hình thức phương tiện giao thông như đi bộ, lái xe, đi xe đạp và phương tiện công cộng. | |
Tuỳ chỉnh bản đồ của bạn | Tạo điểm đánh dấu bản đồ tùy chỉnh để giúp vị trí của bạn nổi bật và tạo kiểu cho bản đồ để phù hợp với màu sắc thương hiệu của bạn. Hiển thị (hoặc ẩn) các địa điểm yêu thích (POI) cụ thể trên bản đồ của bạn để giúp người dùng tự định hướng tốt hơn và kiểm soát mật độ POI để tránh tình trạng bản đồ lộn xộn. | |
Thu thập thông tin chi tiết về mức sử dụng thông qua số liệu phân tích | Định cấu hình và sử dụng Google Analytics để thu thập thông tin chi tiết về chiến lược và cách triển khai của công cụ định vị. | |
Gửi đường đi đến thiết bị di động | Ngoài việc hiển thị thông tin đường đi trên công cụ định vị, bạn cũng có thể gửi thông tin đường đi đến điện thoại của người dùng để đi theo chỉ dẫn bằng Google Maps khi di chuyển. | |
Hiển thị Chế độ xem đường phố để giúp người dùng trực quan hoá các vị trí | Cung cấp cho người dùng hình ảnh trong Chế độ xem đường phố với chế độ xem 360 độ để định hướng họ hiệu quả hơn và giúp họ tìm thấy vị trí của bạn nhanh hơn. | |
Xác định vị trí của người dùng bằng Vị trí địa lý | Nếu bạn không muốn dựa vào dịch vụ vị trí trên thiết bị, hãy sử dụng Vị trí địa lý để giúp xác định vị trí của người dùng. | |
Kết hợp dữ liệu vị trí tuỳ chỉnh với Thông tin chi tiết về địa điểm | Kết hợp thông tin chi tiết về vị trí tuỳ chỉnh của riêng bạn với Thông tin chi tiết về địa điểm nhằm cung cấp cho người dùng một tập dữ liệu phong phú để đưa ra quyết định. |
Hiển thị vị trí của bạn trên bản đồ tương tác
Công cụ định vị là một phần quan trọng trong trải nghiệm người dùng. Tuy nhiên, một số trang web có thể thiếu cả một bản đồ đơn giản, yêu cầu người dùng phải rời khỏi trang web hoặc ứng dụng để tìm một vị trí lân cận. Điều này có nghĩa là những người dùng phải di chuyển giữa các trang để nhận được thông tin họ cần sẽ mang lại trải nghiệm dưới mức tối ưu. Thay vào đó, bạn có thể nâng cao trải nghiệm này bằng cách nhúng và tuỳ chỉnh bản đồ vào ứng dụng của mình.
Có nhiều cách để bật tính năng này: (1) dùng giải pháp Quick Builder Locator Plus (Vị trí trình tạo nhanh) để cung cấp ngay chức năng này, và (2) sử dụng cách triển khai Dynamic Maps của riêng bạn. Phần này mô tả chi tiết về các lựa chọn này.
Sử dụng Quick Builder Locator Plus
Bạn có thể sử dụng giải pháp Quick Builder Locator Plus để nhập thông tin chi tiết về doanh nghiệp từ Trang doanh nghiệp của mình. Vì vậy, giờ đây, khi bạn thay đổi thông tin doanh nghiệp trên Trang doanh nghiệp, công cụ định vị cửa hàng trên trang web của bạn sẽ thể hiện sự thay đổi đó. Những nội dung thay đổi này có thể bao gồm giờ làm việc, thông tin liên hệ, ảnh, các lựa chọn dịch vụ, v.v. Trình tạo nhanh có thể giúp bạn nhanh chóng khám phá cách thiết lập các địa điểm doanh nghiệp trên bản đồ, tạo mã có thể triển khai hoặc triển khai trực tiếp lên Google Cloud Storage chỉ trong vài phút.
![Tích hợp Trang doanh nghiệp](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/locator_gbp_integration.gif?authuser=7&hl=vi)
![Triển khai lên đám mây](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/locator_deploy_to_cloud.gif?authuser=7&hl=vi)
Sử dụng cách triển khai Bản đồ động của riêng bạn
Ví dụ này sử dụng: API JavaScript cho Maps | Cũng áp dụng: Android | iOS |
Bạn có thể thêm một bản đồ động vào trang của mình bằng một vài dòng mã.
Trước tiên, bạn cần đưa API JavaScript của Maps vào trang. Bạn có thể thực hiện việc này thông qua việc liên kết tập lệnh sau trong trang HTML.
<script defer src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap&solution_channel=GMP_guides_locatorplus_v2_a"></script>
URL này tham chiếu hàm initMap
của JavaScript sẽ chạy khi trang tải. Trong URL, bạn cũng có thể xác định
ngôn ngữ hoặc khu vực trên bản đồ để đảm bảo bản đồ được định dạng theo đúng cách cho
quốc gia cụ thể mà bạn đang nhắm đến. Việc thiết lập khu vực cũng đảm bảo hành vi của các ứng dụng được dùng bên ngoài Hoa Kỳ có xu hướng thiên về khu vực bạn đã đặt. Hãy xem Thông tin chi tiết về phạm vi áp dụng của Nền tảng Google Maps để biết danh sách đầy đủ các ngôn ngữ và khu vực được hỗ trợ, đồng thời tìm hiểu thêm về cách dùng thông số region
.
Tiếp theo, bạn cần có HTML div
để đặt bản đồ của mình trên trang.
Đây là nơi bản đồ sẽ được hiển thị.
<div id="map"></div>
Bước tiếp theo là thiết lập chức năng cơ bản cho bản đồ của bạn. Bạn có thể thực hiện việc này trong hàm tập lệnh initMap
được chỉ định trong URL của tập lệnh. Trong tập lệnh này,
như ví dụ sau, bạn có thể đặt vị trí ban đầu,
loại bản đồ và
chế độ kiểm soát nào sẽ có trên bản đồ cho người dùng của mình. Lưu ý rằng
getElementById()
tham chiếu đến mã nhận dạng div
"map" ở trên.
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 12, center: { lat: 51.485925, lng: -0.129500 }, zoomControl: false }); }
Đối với một công cụ định vị, bạn thường sẽ quan tâm đến việc đặt vị trí ban đầu, điểm giữa hoặc ranh giới và mức thu phóng (mức độ phóng to bản đồ đến vị trí đó). Hầu hết các phần tử khác, chẳng hạn như tinh chỉnh các thành phần điều khiển, là không bắt buộc khi bạn xác định mức độ tương tác với bản đồ.
Đang tải mã địa điểm
Ví dụ này sử dụng: API Địa điểm | Cũng có sẵn: JavaScript |
Bạn có thể có một cơ sở dữ liệu về các vị trí của mình với các thông tin cơ bản như tên của vị trí đó, địa chỉ và số điện thoại của vị trí đó. Để tìm nạp thông tin mà Nền tảng Google Maps
có về địa điểm đó, bao gồm cả toạ độ địa lý và thông tin
do người dùng đóng góp, hãy tìm mã địa điểm tương ứng với từng vị trí trong cơ sở dữ liệu của bạn. Bạn có thể gọi đến
điểm cuối Tìm địa điểm trong tính năng Tìm kiếm địa điểm của API Địa điểm và chỉ yêu cầu trường place_id
. Dưới đây là ví dụ về cách yêu cầu mã địa điểm cho văn phòng của Google London:
https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=google%20london&inputtype=textquery&fields=place_id&key=YOUR_API_KEY&solution_channel=GMP_guides_locatorplus_v2_a
Bạn có thể lưu trữ mã địa điểm này trong cơ sở dữ liệu và sử dụng mã này như một cách hiệu quả để yêu cầu thông tin về địa điểm. Sau đây là hướng dẫn sử dụng mã địa điểm để mã hoá địa lý, truy xuất Thông tin chi tiết về địa điểm và yêu cầu chỉ đường đến địa điểm đó.
Mã hoá địa lý vị trí của bạn
Ví dụ này sử dụng: API mã hóa địa lý | Cũng có sẵn: JavaScript |
Nếu cơ sở dữ liệu về vị trí của bạn có địa chỉ đường phố nhưng không có toạ độ địa lý, hãy sử dụng API mã hoá địa lý để lấy vĩ độ và kinh độ của địa chỉ đó cho mục đích đặt điểm đánh dấu trên bản đồ. Bạn có thể mã hoá địa lý các địa chỉ của mình ở phía máy chủ, lưu trữ vĩ độ và kinh độ trong cơ sở dữ liệu và làm mới ít nhất 30 ngày một lần.
Dưới đây là ví dụ về việc sử dụng API mã hoá địa lý để lấy vĩ độ và kinh độ của mã địa điểm đã được trả về cho văn phòng của Google London:
https://maps.googleapis.com/maps/api/geocode/json?place_id=ChIJVSZzVR8FdkgRTyQkxxLQmVU&key=YOUR_API_KEY&solution_channel=GMP_guides_locatorplus_v2_a
Đang thêm vị trí vào bản đồ
Bước tiếp theo là thêm các vị trí của bạn vào bản đồ. Bạn thường thực hiện việc này bằng cách thêm điểm đánh dấu vào bản đồ, mặc dù có một số tuỳ chọn khác mà bạn có thể sử dụng, chẳng hạn như lớp dữ liệu.
Sau khi bạn có vĩ độ và kinh độ cho vị trí của mình, sau đây là ví dụ về cách thêm điểm đánh dấu vào bản đồ:
var marker = new google.maps.Marker({ position: { lat: 51.493073, lng: -0.146550 }, label:"A", title:"Location Name" }); // To add the marker to the map, call setMap(); marker.setMap(map);
Với một vài điểm đánh dấu, bạn có thể xem vị trí của một số vị trí cùng lúc.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/maps.png?authuser=7&hl=vi)
Nếu có một số lượng lớn vị trí, bạn có thể cân nhắc dùng tiện ích phân cụm điểm đánh dấu cho JavaScript, Android hoặc iOS. Sau đây là một ví dụ về việc phân cụm điểm đánh dấu trong mẫu GitHub của công cụ định vị cửa hàng JavaScript.
Cung cấp thông tin chi tiết về địa điểm
Ví dụ này sử dụng: API JavaScript của Maps | Cũng có sẵn: API | Android | iOS |
Bạn có thể chia sẻ Thông tin chi tiết về địa điểm mà người dùng cần biết trước khi họ ghé thăm một trong các địa điểm của bạn. Với thông tin chi tiết phong phú về địa điểm như thông tin liên hệ, giờ làm việc, điểm xếp hạng của người dùng, ảnh của người dùng và trạng thái đóng cửa tạm thời, người dùng sẽ biết chính xác những điều cần biết khi ghé thăm địa điểm của bạn. Sau khi thực hiện lệnh gọi đến Places API, bạn có thể lọc và kết xuất phản hồi trong một cửa sổ thông tin, thanh bên trên web hoặc theo bất kỳ cách nào khác mà bạn muốn.
Để yêu cầu Thông tin chi tiết về địa điểm, bạn cần có mã địa điểm của từng vị trí. Xem phần Lấy mã địa điểm để truy xuất mã địa điểm cho vị trí của bạn.
Mở rộng để xem các video để yêu cầu Chi tiết địa điểm:
Nhận giờ mở cửa
Kiểm tra trạng thái đóng cửa
Kiểm soát chi phí
Ví dụ sau đây sử dụng Thư viện địa điểm, Maps JavaScript API để truy xuất Thông tin chi tiết về địa điểm và thêm chúng vào InfoWindow. Cách triển khai này sử dụng chiến lược tiết kiệm chi phí để kích hoạt yêu cầu Thông tin chi tiết về địa điểm chỉ khi người dùng yêu cầu thông tin chi tiết bằng cách nhấp vào điểm đánh dấu thay vì tìm nạp trước thông tin cho tất cả vị trí, bất kể mối quan tâm của người dùng.
const marker = new google.maps.Marker({ map, position: { lat: 51.493073, lng: -0.14655 }, }); const request = { placeId: "ChIJVSZzVR8FdkgRTyQkxxLQmVU", fields: ["name", "formatted_address", "rating", "website"], }; const infowindow = new google.maps.InfoWindow(); const service = new google.maps.places.PlacesService(map); google.maps.event.addListener(marker, "click", function () { service.getDetails(request, (place, status) => { if (status === google.maps.places.PlacesServiceStatus.OK && place) { infowindow.setContent( "<div><strong>" + place.name + "</strong><br>" + place.formatted_address + "<br>" + "Rating: " + place.rating + " stars<br>" + place.website + "</div>" ); infowindow.open(map, this); } }); });
Hiển thị vị trí từ chế độ xem 45°
Ví dụ này sử dụng: API JavaScript của Maps | Cũng áp dụng: Android | iOS |
Khi cung cấp cho người dùng chế độ xem vị trí từ trên không, họ có thể nhận biết rõ hơn vị trí của bạn và tìm thấy vị trí dễ dàng hơn. Khi người dùng chọn một vị trí duy nhất để xem thêm chi tiết, bạn có thể phóng to vị trí đó để hiển thị hình ảnh vệ tinh có sẵn từ góc 45°.
Mã mẫu sau đây thiết lập bản đồ ở mức thu phóng cao, loại bản đồ tương thích và góc nghiêng sẽ hiển thị hình ảnh 45° nếu có. Thông tin chi tiết về phạm vi cung cấp hình ảnh 45° được giải thích trong tài liệu này.
function seeDetail(location) { map.setCenter(location); map.setZoom(19); map.setMapTypeId(google.maps.MapTypeId.HYBRID); map.setTilt(45); }
Đặt lại về chế độ xem bản đồ ban đầu
Người dùng thường muốn chuyển đổi qua lại giữa chế độ xem chi tiết của một vị trí duy nhất và chế độ xem tóm tắt một vài vị trí lân cận. Để hỗ trợ việc này, hãy thêm trình nghe để phát hiện thời điểm người dùng rời khỏi chế độ xem chi tiết trong hoạt động tương tác trên bản đồ hoặc trong chế độ xem danh sách. Ví dụ: việc theo dõi sự kiện zoom_changed
trên đối tượng map
cho biết rằng người dùng đã thu nhỏ khỏi khung hiển thị chi tiết theo cách thủ công hoặc đã gọi một hàm khác đã cập nhật mức thu phóng. Trong mẫu này, thao tác thu nhỏ sẽ đặt lại bản đồ về loại bản đồ và độ nghiêng ban đầu.
let originalMapTypeId = google.maps.MapTypeId.ROADMAP; map.addListener("zoom_changed", () => { const newZoom = map.getZoom()!; if (newZoom < 19) { map.setTilt(0); map.setMapTypeId(originalMapTypeId); } });
Xác định vị trí của người dùng
Ví dụ này sử dụng: API JavaScript cho Maps | Cũng áp dụng: Android | iOS |
Thành phần chính tiếp theo trong bất kỳ công cụ định vị nào là xác định vị trí xuất phát của người dùng. Theo mặc định, bạn có thể sử dụng dịch vụ vị trí trên thiết bị di động và thông tin định vị vị trí trên trình duyệt web để yêu cầu người dùng cấp quyền, nhằm đặt điểm khởi hành làm vị trí hiện tại của người dùng. Tuy nhiên, người dùng có thể từ chối những quyền đó hoặc có thể muốn đặt một vị trí khác làm điểm xuất phát.
Người dùng ngày nay đã quen với chức năng tự động hoàn thành nhập ở phía trước trên phiên bản Google Maps dành cho người dùng thông thường. Bạn có thể tích hợp chức năng này vào bất kỳ ứng dụng nào bằng cách sử dụng thư viện Địa điểm trong Nền tảng Google Maps trên thiết bị di động và trên web. Khi người dùng nhập một địa chỉ, tính năng tự động hoàn thành sẽ điền các phần còn lại thông qua việc sử dụng tiện ích. Bạn cũng có thể cung cấp chức năng tự động hoàn thành của riêng mình bằng cách sử dụng trực tiếp thư viện Địa điểm.
Bạn chỉ cần thêm một vài tham số truy vấn vào URL của tập lệnh JavaScript API để thêm thư viện Tự động hoàn thành địa điểm vào trang web của mình. Trong ví dụ sau, dữ liệu bổ sung là libraries=places
.
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initMap&solution_channel=GMP_guides_locatorplus_v2_a" defer></script>
Tiếp theo, hãy thêm một hộp văn bản vào trang của bạn để người dùng nhập thông tin.
<input id="autocomplete" placeholder="Enter starting address, city, or zip code" type="text"></input>
Cuối cùng, bạn cần khởi chạy dịch vụ Tự động hoàn thành và liên kết dịch vụ đó với hộp văn bản được đặt tên.
Việc giới hạn
các cụm từ gợi ý của tính năng Tự động hoàn thành về địa điểm theo các loại mã địa lý sẽ định cấu hình trường nhập dữ liệu của bạn để chấp nhận địa chỉ đường phố, khu vực lân cận, thành phố và mã bưu chính. Nhờ đó, người dùng có thể nhập bất kỳ mức độ cụ thể nào để mô tả điểm khởi hành của họ. Hãy nhớ yêu cầu trường geometry
để câu trả lời có vĩ độ và kinh độ tại điểm khởi hành của người dùng. Bạn sẽ sử dụng
những toạ độ bản đồ này để căn giữa bản đồ và cho biết mối quan hệ của các vị trí của bạn với
điểm gốc.
// Create the autocomplete object, restricting the search predictions to // geographical location types. const autocomplete = new google.maps.places.Autocomplete( document.getElementById("autocomplete"), { types: ["geocode"], componentRestrictions: {'country': ['gb']}, fields: ['place_id', 'geometry', 'formatted_address'] } ); // When the user selects an address from the drop-down // zoom to the select location and add a marker. autocomplete.addListener("place_changed", addUserLocation); }
Trong ví dụ này, sau khi người dùng đã chọn địa chỉ, hàm addUserLocation()
sẽ được thực thi. Thao tác này sẽ lấy hình học của kết quả phù hợp, vị trí của người dùng, sau đó di chuyển
bản đồ đến vị trí đó và thêm một điểm đánh dấu.
function addUserLocation() { // Get the place details from the autocomplete object. const place = autocomplete.getPlace(); // Add a marker to the map. const marker = new google.maps.Marker({ map: map }); marker.setLabel("C"); marker.setPosition(place.geometry.location); // Zoom the map to the marker. map.panTo(place.geometry.location); map.setZoom(12); }
Sau đó, bạn có thể thấy mối quan hệ giữa người dùng và bất kỳ vị trí cụ thể nào, như trong hình sau.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/autocomplete.png?authuser=7&hl=vi)
Hãy mở rộng phần này để xem hướng dẫn từng bước bằng video về cách thêm tính năng Tự động hoàn thành địa điểm vào ứng dụng:
Trang web
Ứng dụng Android
Ứng dụng iOS
Hiển thị thời gian di chuyển và khoảng cách đến địa điểm gần nhất
Ví dụ này sử dụng: API Ma trận khoảng cách | Cũng có: Dịch vụ ma trận khoảng cách, API Maps JavaScript |
Sau khi biết vị trí của người dùng, bạn có thể so sánh thông tin này với vị trí của người dùng. Thực hiện việc này thông qua Dịch vụ ma trận khoảng cách, API Maps JavaScript giúp người dùng chọn vị trí thuận tiện nhất cho họ theo thời gian lái xe hoặc quãng đường.
Việc hiển thị các vị trí gần người dùng có nghĩa là bạn đã có sẵn các vị trí của mình. Khi sử dụng cơ sở dữ liệu vị trí của riêng bạn, điều quan trọng là phải đảm bảo dữ liệu ở định dạng có thể dùng trong bản đồ, chẳng hạn như GeoJSON, được mô tả trong chủ đề Lớp dữ liệu.
Cách tiêu chuẩn để sắp xếp danh sách các vị trí là sắp xếp chúng theo khoảng cách. Thông thường, khoảng cách này được tính đơn giản bằng cách sử dụng đường thẳng từ người dùng đến vị trí. Tuy nhiên, điều này có thể gây hiểu lầm. Đường thẳng có thể nằm trên một con sông không thể vượt qua hoặc qua những con đường đông đúc tại thời điểm một vị trí khác có thể thuận tiện hơn. Điều này rất quan trọng khi bạn có nhiều vị trí trong phạm vi cách nhau vài km.
Dịch vụ ma trận khoảng cách hoạt động bằng cách lấy danh sách vị trí điểm khởi hành và vị trí điểm đến, sau đó trả về không chỉ quãng đường di chuyển mà còn thời gian giữa các vị trí đó. Trong trường hợp của người dùng, điểm gốc sẽ là nơi họ đang ở hoặc điểm xuất phát mong muốn, và điểm đến sẽ là của các vị trí đó. Điểm khởi hành và điểm đến có thể được chỉ định thành cặp toạ độ hoặc dưới dạng địa chỉ; điểm khởi hành và điểm đến sẽ được so khớp khi dịch vụ được gọi. Bạn có thể sử dụng Ma trận khoảng cách với một số tham số bổ sung để hiển thị kết quả dựa trên thời gian lái xe hiện tại hoặc trong tương lai.
Ví dụ sau đây gọi Dịch vụ ma trận khoảng cách, chỉ định nguồn gốc của người dùng và các vị trí. Ví dụ này cho thấy khoảng cách từ trung tâm bản đồ đến ba văn phòng của Google ở London.
Tài liệu tham khảo nhanh về mã hoá URL: %2C
= , (dấu phẩy), %3A
= : (dấu hai chấm) và %7C
= | (dấu sổ thẳng).
https://maps.googleapis.com/maps/api/distancematrix/json?origins=51.493490%2C-0.097288
&destinations=place_id%3AChIJVSZzVR8FdkgRTyQkxxLQmVU%7Cplace_id%3AChIJVSZzVR8FdkgR-HklrBMO0Hc%7Cplace_id%3AChIJ4abvVDwbdkgRDZVFR7A6Bcc
&units=metric
&mode=driving
&key=YOUR_API_KEY
&solution_channel=GMP_guides_locatorplus_v2_a
Dưới đây là phiên bản bạn có thể sao chép và chạy:
https://maps.googleapis.com/maps/api/distancematrix/json?key=YOUR_API_KEY&origins=51.493490%2C-0.097288&destinations=place_id%3AChIJVSZzVR8FdkgRTyQkxxLQmVU%7Cplace_id%3AChIJVSZzVR8FdkgR-HklrBMO0Hc%7Cplace_id%3AChIJ4abvVDwbdkgRDZVFR7A6Bcc&units=metric&mode=driving&solution_channel=GMP_guides_locatorplus_v2_a
Phản hồi thực tế của dịch vụ sẽ là danh sách các địa chỉ, khoảng cách và thời lượng khớp, tương tự như trong ví dụ sau:
Mở rộng để xem phản hồi mẫu:
{ "destination_addresses": [ "123 Buckingham Palace Rd, Victoria, London SW1W 9SH, UK", "1-13 St Giles High St, West End, London WC2H 8AG, UK", "6 Pancras Square, Kings Cross, London N1C 4AG, UK" ], "origin_addresses": [ "Unnamed Road, London, UK" ], "rows": [ { "elements": [ { "distance": { "text": "4.5 km", "value": 4540 }, "duration": { "text": "15 mins", "value": 924 }, "status": "OK" }, { "distance": { "text": "5.0 km", "value": 5043 }, "duration": { "text": "17 mins", "value": 1044 }, "status": "OK" }, { "distance": { "text": "6.9 km", "value": 6919 }, "duration": { "text": "23 mins", "value": 1357 }, "status": "OK" } ] } ], "status": "OK" }
Hình ảnh sau đây hiển thị điểm khởi hành (điểm đánh dấu màu đỏ C) và các điểm đến trên bản đồ:
![Hình ảnh hiển thị bản đồ thành phố với vị trí của người dùng là điểm đánh dấu màu đỏ và các vị trí xung quanh được đánh dấu màu xanh lục.](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/distance_matrix.png?authuser=7&hl=vi)
Khoảng cách đường thẳng và khoảng cách tuyến đường thường khác nhau, như được minh hoạ trong bảng sau.
Vị trí | Khoảng cách thẳng | Đường trong giao thông / Thời gian |
---|---|---|
Vị trí A | 3,32 km | 4,5 km / 15 phút |
Vị trí B | 3,20 km | 5 km / 17 phút |
Vị trí C | 4,84 km | 6,9 km / 23 phút |
Mặc dù Vị trí B gần nhất theo khoảng cách, nhưng tuyến đường và thời gian để đến đó lâu hơn vì có thể đến Vị trí A bằng đường cao tốc.
Sau khi tạo yêu cầu này, bạn có thể xử lý việc so khớp để sắp xếp các phản hồi theo thời gian lái xe. Bạn có thể tìm thấy các ví dụ về những hàm như vậy trong lớp học lập trình của công cụ định vị.
Cung cấp thông tin đường đi
Ví dụ này sử dụng: Dịch vụ chỉ đường API Maps JavaScript | Cũng cung cấp: Dịch vụ web Chỉ đường để sử dụng trên Android và iOS, trực tiếp từ ứng dụng hoặc từ xa thông qua proxy máy chủ |
Khi cho người dùng thấy đường đi từ trong trang web hoặc ứng dụng của bạn, họ sẽ không cần rời khỏi trang web của bạn. Điều này có nghĩa là người dùng sẽ không bị phân tâm với các trang khác hoặc nhìn thấy các đối thủ cạnh tranh trên bản đồ. Thậm chí, bạn có thể cho thấy lượng khí thải cacbon của phương tiện đi lại cụ thể và cho thấy tác động của một hành trình cụ thể.
Dịch vụ chỉ đường cũng có các chức năng cho phép bạn xử lý kết quả và dễ dàng hiển thị kết quả trên bản đồ.
Sau đây là ví dụ về cách hiển thị một bảng điều hướng. Để biết thêm thông tin về mẫu này, hãy xem phần Hiện hướng văn bản.
Để tìm hiểu thêm về các tính năng này của Maps, hãy đọc Tài liệu về API JavaScript của Maps hoặc xem các lớp học lập trình từng bước để tạo một bộ định vị.
Giúp người dùng đặt lịch hẹn
Khi người dùng xem Thông tin chi tiết về địa điểm của địa điểm của bạn trong một bảng điều khiển bên, bạn có thể thuận tiện cho việc đặt lịch hẹn bằng cách nhấp vào nút, như minh hoạ trong hình sau.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/store-locator-appointments.png?authuser=7&hl=vi)
Có nhiều cách để bật tính năng này: (1) dùng giải pháp Quick Builder Locator Plus để cung cấp ngay chức năng này và (2) sử dụng Trang doanh nghiệp của bạn. Phần này mô tả chi tiết về các lựa chọn này.
Sử dụng Quick Builder Locator Plus
Bạn có thể sử dụng giải pháp Quick Builder Locator Plus để dễ dàng nhập thông tin doanh nghiệp từ Trang doanh nghiệp của mình. Sau khi nhập vào công cụ Trình tạo nhanh, bạn có thể bật các đường liên kết đặt lịch hẹn được nhúng (nếu có) cho các địa điểm của doanh nghiệp thông qua tính năng Đặt chỗ bằng Google. Ngay cả khi không có Trang doanh nghiệp nào được liên kết với Tài khoản Google, bạn vẫn có thể sử dụng Trình tạo nhanh để nhúng đường liên kết đặt trước cho những doanh nghiệp mà bạn đã cho phép liên kết với nhà cung cấp dịch vụ đặt trước bên thứ ba thông qua tính năng Đặt chỗ bằng Google*.
![Đặt chỗ bằng Google](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/locator_reserve_with_google.gif?authuser=7&hl=vi)
*Tính năng Đặt chỗ bằng Google chỉ hoạt động ở một số quốc gia/khu vực nơi doanh nghiệp hợp tác với một nhà cung cấp dịch vụ đặt chỗ được hỗ trợ. Nếu bạn quan tâm đến tính năng Đặt chỗ bằng Google nhưng hiện không hợp tác với một đối tác Đặt chỗ bằng Google, vui lòng đề nghị nhà cung cấp của bạn cho biết mối quan tâm của họ bằng cách hoàn tất biểu mẫu này và xem qua tài liệu của chúng tôi để biết cách bắt đầu. Nếu chưa hợp tác với nhà cung cấp dịch vụ đặt chỗ nào, bạn có thể thấy các nhà cung cấp đủ điều kiện trong mục Đặt trước trong Trình quản lý Trang doanh nghiệp.
Sử dụng Trang doanh nghiệp để bật tính năng đặt lịch hẹn
Khi bạn quản lý sự hiện diện trực tuyến của mình bằng Trang doanh nghiệp, các địa điểm doanh nghiệp mà bạn tạo sẽ được liên kết với mã địa điểm trên Nền tảng Google Maps để có thể sử dụng chức năng lập bản đồ tích hợp với dữ liệu doanh nghiệp.
API Trang doanh nghiệp cho phép bạn tạo các hành động (chẳng hạn như đặt lịch hẹn) mà bạn có thể truy xuất và hiển thị trong ứng dụng của mình. Tuy nhiên, bạn cần thực hiện một số bước thủ công để bật tính năng này, như mô tả bên dưới.
Khi người dùng xem Thông tin chi tiết về địa điểm của một trong các vị trí trong bảng điều khiển bên, bạn có thể cung cấp đường liên kết để họ đặt lịch hẹn. Phần này mô tả cách thực hiện.
-
Tạo một API Trang doanh nghiệp
placeActionLink
cho vị trí của loạiAPPOINTMENT
,ONLINE_APPOINTMENT
hoặcDINING_RESERVATION
.placeActionLink
sẽ là đối tượng mà bạn dùng cho đường liên kết đến cuộc hẹn trong bảng điều khiển bên. (Nếu bạn đã tạo đường liên kết đến hành động cuộc hẹn mà bạn muốn, hãy chuyển sang bước tiếp theo.) Dưới đây là phản hồi mẫu từ thao tác POSTplaceActionLinks.create
thành công:{ "name": "locations/15899957830169237700/placeActionLinks/9c984be778a7ebbc", "providerType": "MERCHANT", "isEditable": true, "uri": "https://example.com/reservation-uri", "placeActionType": "DINING_RESERVATION", "createTime": "2021-05-01T01:17:41.609161Z", "updateTime": "2021-05-01T01:17:41.609161Z" }
-
Tìm vị trí của Trang doanh nghiệp được liên kết với mã địa điểm trên Nền tảng Google Maps.
Khi xem Thông tin chi tiết về địa điểm, người dùng sẽ xem thông tin về mã địa điểm trên Nền tảng Google Maps. Mã địa điểm được liên kết với một mã vị trí của Trang doanh nghiệp. Vì vậy, bạn cần tìm mã vị trí dựa trên mã địa điểm trên bản đồ để truy xuất và hiển thị đường liên kết đặt lịch hẹn mà bạn đã tạo. Thực hiện các lệnh gọi API Trang doanh nghiệp sau đây:
- Liệt kê các tài khoản của dự án.
- Liệt kê tất cả các vị trí trong một tài khoản.
- Trong các vị trí tài khoản,
LocationKey
chứa mã địa điểm trên Nền tảng Google Maps mà bạn có thể so sánh với mã địa điểm của vị trí đang được xem.
-
Với mã vị trí, bạn có thể tạo được đường liên kết hành động mà bạn muốn. Để truy xuất
placeActionLink
lịch hẹn hiện có, hãy liệt kêplaceActionLinks
hiện có cho vị trí đó rồi lọcplaceActionType
để tìm đường liên kết đến cuộc hẹn mà bạn muốn sử dụng (APPOINTMENT
,ONLINE_APPOINTMENT
hoặcDINING_RESERVATION
).Ví dụ sau đây cho thấy một
placeActionLink
HOẠT ĐỘNG trong phản hồi từ lệnh gọi LIST.{ "placeActionLinks": [ { "name": "locations/15899957830169237700/placeActionLinks/9c984be778a7ebbc", "providerType": "MERCHANT", "isEditable": true, "uri": "https://example.com/", "placeActionType": "APPOINTMENT", "createTime": "2021-05-01T01:17:41.609161Z", "updateTime": "2021-05-01T01:17:41.609161Z" } ] }
- Tạo và điền sẵn dữ liệu liên quan từ đối tượng
placeActionLink
vào<div>
trong bảng điều khiển bên, đặc biệt là URI cho đường liên kết đặt lịch hẹn.
Các lựa chọn thay thế khác để thêm đường liên kết đến cuộc hẹn
Nếu bạn không quản lý Trang doanh nghiệp hoặc không muốn sử dụng giải pháp Quick Builder Locator Plus, hãy kiểm tra nền tảng đặt lịch hẹn để xem tài liệu về cách nhúng tiện ích đặt lịch hẹn vào trang web hoặc ứng dụng. Một cách khác là sử dụng Google Cloud, chẳng hạn như Cloud Spanner để quản lý khoảng không quảng cáo (video).
Đăng các sản phẩm/dịch vụ tại địa phương
Trong bảng điều khiển bên Thông tin chi tiết về địa điểm của một vị trí, bạn có thể hiển thị các ưu đãi tại địa phương để người dùng nhấp vào. API Google Doanh nghiệp của tôi cho phép bạn tạo và truy xuất "bài đăng" (chẳng hạn như các ưu đãi tại địa phương) liên kết với các địa điểm của bạn. Hình sau đây cho thấy ví dụ về một mặt hàng tại địa phương trong bảng điều khiển bên Thông tin chi tiết về địa điểm.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/store-locator-offers.png?authuser=7&hl=vi)
(Sơ đồ cấu trúc trong phần trước cho thấy các công nghệ có sẵn để thêm ưu đãi vào bộ định vị.)
Vì các mặt hàng tại địa phương có liên kết với địa điểm, nên bạn cần tìm mã vị trí của Trang doanh nghiệp được liên kết với mã địa điểm trên Nền tảng Google Maps cho vị trí mà người dùng đang xem.
Khi có mã vị trí của Trang doanh nghiệp, bạn có thể truy xuất ưu đãi liên quan dưới dạng localPost
để hiển thị trong bảng điều khiển bên Thông tin chi tiết về địa điểm. Sau đây là các bước:
- Thông qua API Google Doanh nghiệp của tôi, hãy tạo bất kỳ bài đăng nào về ưu đãi mà bạn muốn hiển thị, thuộc loại
OFFER
. -
Tìm vị trí của Trang doanh nghiệp / mã vị trí được liên kết với mã địa điểm trên bản đồ.
Khi xem Thông tin chi tiết về địa điểm, người dùng sẽ xem thông tin về mã địa điểm trên Nền tảng Google Maps. Mã địa điểm được liên kết với một mã vị trí của Trang doanh nghiệp. Vì vậy, bạn cần tìm mã vị trí dựa trên mã địa điểm trên bản đồ để truy xuất và đăng đường liên kết đến mặt hàng tại địa phương cho địa điểm của mình. Thực hiện các lệnh gọi API Trang doanh nghiệp sau đây:
- Liệt kê các tài khoản của dự án.
- Liệt kê tất cả các vị trí trong tài khoản.
- Trong các vị trí tài khoản,
LocationKey
chứa mã địa điểm trên bản đồ mà bạn có thể so sánh với mã địa điểm của vị trí đang được xem.
Sau đây là một yêu cầu mẫu về thông tin chi tiết của một vị trí trong API Trang doanh nghiệp:
https://mybusiness.googleapis.com/v4/accounts/111098884960588804666/locations/15899957830169237700
Phản hồi này chứa trường
locationKey
. Đây là mã địa điểm mà bạn có thể sử dụng với các yêu cầu trên Nền tảng Google Maps.Hãy mở rộng để xem phản hồi mẫu.
{ "name": "accounts/111098884960588804666/locations/15899957830169237700", "locationName": "Sushi Sushi", "primaryPhone": "+49 2222 22222", "primaryCategory": { "displayName": "Restaurant", "categoryId": "gcid:restaurant", }, "regularHours": { "periods": [ { "openDay": "MONDAY", "openTime": "09:00", "closeDay": "MONDAY", "closeTime": "09:10" }, { "openDay": "TUESDAY", "openTime": "11:30", "closeDay": "TUESDAY", "closeTime": "24:00" } ] }, "locationKey": { "placeId": "ChIJs4wtL04X2jERbc8qHd_wZzk", "requestId": "2c72cbcb-ea2e-4d66-b684-0ef5f090300c" }, "latlng": { "latitude": 1.3670033, "longitude": 103.8556385 }, "openInfo": { "status": "OPEN", "canReopen": true }, "locationState": { "isGoogleUpdated": true, "canUpdate": true, "canDelete": true, "isVerified": true, "isPublished": true, "canHaveFoodMenus": true }, "attributes": [ { "attributeId": "has_delivery", "valueType": "BOOL", "values": [ false ] }, { "attributeId": "requires_masks_customers", "valueType": "BOOL", "values": [ true ] }, { "attributeId": "url_order_ahead", "valueType": "URL", "urlValues": [ { "url": "https://example.com/" }, ] }, { "attributeId": "pay_credit_card_types_accepted", "valueType": "REPEATED_ENUM", "repeatedEnumValue": { "setValues": [ "visa" ], "unsetValues": [ "american_express" ] } } ], "address": { "regionCode": "SG", "languageCode": "en-US", "postalCode": "560445", "addressLines": [ "445 Ang Mo Kio Ave 10" ] }, "profile": { "description": "Example restaurant" } }
-
Giờ đây, khi đã có mã vị trí, bạn có thể nhận được ưu đãi mà mình muốn. Để truy xuất một ưu đãi hiện có Bài đăng, hãy liệt kê
localPosts
hiện có cho vị trí và lọctopicType
trong sốOFFER
để tìm nội dung ưu đãi bạn muốn sử dụng.Dưới đây là ví dụ về yêu cầu liệt kê các Bài đăng địa phương đang hoạt động cho một vị trí:
https://mybusiness.googleapis.com/v4/accounts/111098884960588804666/locations/15899957830169237700/localPosts
Ví dụ sau đây cho thấy một
OFFER
localPost
trong phản hồi.Hãy mở rộng để xem phản hồi mẫu.
{ "localPosts": [ { "name": "accounts/111098884960588804666/locations/15899957830169237700/localPosts/2524928563578730680", "languageCode": "en", "summary": "Buy One Get One Free on all order-ahead bento boxes today!", "state": "LIVE", "event": { "title": "Bento BOGO", "schedule": { "startDate": { "year": 2020, "month": 1, "day": 20 }, "startTime": {}, "endDate": { "year": 2021, "month": 1, "day": 21 }, "endTime": {} } }, "updateTime": "2020-09-11T10:56:22.594Z", "createTime": "2020-09-11T10:56:22.594Z", "searchUrl": "https://local.google.com/place?id=4156539623820808045&use=posts&lpsid=2524928563578730680", "media": [ { "name": "accounts/111098884960588804666/locations/15899957830169237700/media/localPosts/AF1QipOBQCIf40SbF_PPJxb_zvfCHmaTbv9Zw02PoYPS", "mediaFormat": "PHOTO", "googleUrl": "https://lh3.googleusercontent.com/p/AF1QipOBQCIf40SbF_PPJxb_zvfCHmaTbv9Zw02PoYPS" } ], "topicType": "OFFER", "offer": { "couponCode": "BOGO-JET-CODE", "redeemOnlineUrl": "https://www.example.com/redeem", "termsConditions": "Offer only valid for order-ahead orders placed online." } }, ], }
- Tạo và điền sẵn dữ liệu có liên quan từ đối tượng
localPost
vào<div>
vào bảng điều khiển bên.
Tuỳ chỉnh bản đồ của bạn
Bạn có thể thay đổi giao diện và thông tin chi tiết của bản đồ theo một số cách. Ví dụ như bạn có thể:
- Tạo điểm đánh dấu tùy chỉnh của riêng bạn để thay thế các ghim bản đồ mặc định.
- Thay đổi màu sắc của các đối tượng trên bản đồ để phản ánh thương hiệu của bạn.
- Kiểm soát những địa điểm yêu thích mà bạn đăng (điểm thu hút, món ăn, chỗ ở, v.v.) và mật độ điểm ảnh, cho phép bạn tập trung sự chú ý của người dùng vào các vị trí của bạn, đồng thời đánh dấu các địa danh giúp người dùng đến vị trí gần nhất.
Tạo điểm đánh dấu bản đồ tùy chỉnh
Bạn có thể tuỳ chỉnh điểm đánh dấu bằng cách thay đổi màu mặc định (có thể cho biết liệu một vị trí có đang mở cửa hay không) hoặc thay thế điểm đánh dấu bằng một hình ảnh tuỳ chỉnh, chẳng hạn như biểu trưng của thương hiệu. Cửa sổ thông tin hoặc cửa sổ bật lên có thể cung cấp thêm thông tin cho người dùng, chẳng hạn như giờ mở cửa, số điện thoại hoặc thậm chí là ảnh. Bạn cũng có thể tạo các điểm đánh dấu tuỳ chỉnh dưới dạng đường quét, vectơ, kéo được và thậm chí là dạng động.
Sau đây là bản đồ mẫu sử dụng điểm đánh dấu tuỳ chỉnh. (Xem mã nguồn trong chủ đề về điểm đánh dấu tuỳ chỉnh của API Maps JavaScript.)
Để biết thông tin chi tiết, hãy xem tài liệu về điểm đánh dấu cho JavaScript (web), Android và iOS.
Tạo kiểu bản đồ
Nền tảng Google Maps cho phép bạn tạo kiểu cho bản đồ của mình theo cách giúp người dùng tìm thấy địa điểm gần nhất, đến đó nhanh nhất có thể, đồng thời giúp bạn củng cố thương hiệu của mình. Ví dụ: bạn có thể thay đổi màu bản đồ để phù hợp với thương hiệu và giảm sự phân tâm trên bản đồ bằng cách kiểm soát các địa điểm yêu thích mà người dùng nhìn thấy. Nền tảng Google Maps cũng cung cấp một số mẫu bản đồ dành cho người mới bắt đầu, một số mẫu trong số đó được tối ưu hoá cho nhiều ngành, chẳng hạn như du lịch, kho vận, bất động sản và bán lẻ.
Bạn có thể tạo hoặc sửa đổi kiểu bản đồ trên trang Kiểu bản đồ của Google Cloud Console trong dự án của mình.
Mở rộng để xem ảnh động về quá trình tạo và định kiểu bản đồ trong Cloud Console:
Kiểu bản đồ ngành
Ảnh động này thể hiện các kiểu bản đồ được xác định sẵn theo ngành mà bạn có thể sử dụng. Các kiểu này mang đến điểm khởi đầu tối ưu cho từng loại ngành. Ví dụ: kiểu bản đồ Bán lẻ giảm bớt các địa điểm yêu thích trên bản đồ, cho phép người dùng tập trung vào vị trí của bạn, cũng như các địa danh để giúp họ đến vị trí gần nhất một cách nhanh chóng và tự tin nhất có thể.
![Trên trang Kiểu bản đồ, nhấp chuột vào Tạo kiểu bản đồ mới. Trên trang Kiểu bản đồ mới, nhấp vào nút chọn bên cạnh từng kiểu được tối ưu hoá cho ngành sau đây: Du lịch, Kho vận, Bất động sản và Bán lẻ. Khi người dùng nhấp vào mỗi nút, nội dung mô tả kiểu bản đồ và bản xem trước
đồ hoạ sẽ thay đổi.](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/ioms_animation.gif?authuser=7&hl=vi)
Kiểm soát địa điểm yêu thích
Ảnh động này sẽ đặt màu điểm đánh dấu cho các địa điểm yêu thích và tăng mật độ POI trên kiểu bản đồ. Mật độ càng cao thì càng có nhiều điểm đánh dấu POI xuất hiện trên bản đồ.
![Trên trang Kiểu bản đồ, nhấp chuột vào Tạo kiểu bản đồ mới. Trên trang Kiểu bản đồ mới, trong phần Tạo kiểu của riêng bạn, nút radio Google Maps được chọn. Nhấp chuột vào nút chọn Atlas cho kiểu Atlas, rồi nhấp vào Mở trong Trình chỉnh sửa kiểu. Trong Trình chỉnh sửa kiểu, chuột sẽ nhấp vào tính năng Địa điểm yêu thích, sau đó nhấp vào phần tử Biểu tượng, đặt màu thành màu đỏ. Sau đó, chuột chọn hộp đánh dấu POI Density (Mật độ POI) rồi trượt tuỳ chọn điều khiển mật độ sang phải để có mật độ tối đa. Ngày càng nhiều điểm đánh dấu màu đỏ xuất hiện trên bản xem trước của bản đồ khi mật độ tăng lên. Sau đó, chuột di chuyển đến nút Save (Lưu).](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/images/store-locator/poi_animation.gif?authuser=7&hl=vi)
Mỗi kiểu bản đồ có mã nhận dạng riêng. Sau khi phát hành một kiểu trong Cloud Console, bạn sẽ tham chiếu đến mã bản đồ đó trong mã của mình, tức là bạn có thể cập nhật kiểu bản đồ theo thời gian thực mà không cần tái cấu trúc ứng dụng. Giao diện mới sẽ tự động xuất hiện trong ứng dụng hiện có và được dùng trên nhiều nền tảng. Các ví dụ sau đây minh hoạ cách thêm mã bản đồ vào một trang web bằng cách sử dụng Maps JavaScript API.
Bằng cách đưa một hoặc nhiều map_ids
vào URL của tập lệnh, API JavaScript của Maps sẽ tự động cung cấp các kiểu đó để kết xuất bản đồ nhanh hơn khi bạn gọi những kiểu đó trong mã của mình.
<script
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&map_ids=MAP_IDs&callback=initMap&solution_channel=GMP_guides_locatorplus_v2_a">
</script>
Mã sau đây sẽ hiển thị một bản đồ đã được tạo kiểu trên trang web. (Không hiển thị là phần tử HTML <div id="map"></div>
mà bản đồ sẽ xuất hiện trên trang.)
map = new google.maps.Map(document.getElementById('map'), { center: {lat: 51.485925, lng: -0.129500}, zoom: 12, mapId: '1234abcd5678efgh' });
Tìm hiểu thêm về cách kết hợp kiểu bản đồ dựa trên đám mây trong JavaScript (web), Android và iOS.
Nắm được thông tin chi tiết về mức sử dụng thông qua số liệu phân tích
Khi sử dụng số liệu phân tích, bạn có thể thu được thông tin chi tiết có giá trị về cách người dùng đang tương tác với công cụ định vị của bạn. Phần này đưa ra hướng dẫn về cách định cấu hình và theo dõi số liệu phân tích Trang doanh nghiệp cũng như Google Analytics để theo dõi những dữ liệu mà bạn quan tâm nhất. Đối với người dùng Trình định vị nhanh của Trình tạo nhanh, trang tổng quan về số liệu phân tích sẽ giúp bạn phân tích và tạo thông tin chi tiết, cung cấp cho bạn thông tin về mức độ tương tác của khách truy cập trang web với công cụ định vị cửa hàng dựa trên dữ liệu ẩn danh.
![Công cụ định vị bổ sung](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/images/locator_analytics.png?authuser=7&hl=vi)
Để truy cập vào báo cáo này, hãy chuyển đến phần báo cáo mức độ tương tác trong Cloud Console. Để biết thêm thông tin chi tiết về báo cáo này, hãy xem báo cáo mức độ tương tác.
Do sức mạnh và tính linh hoạt của Google Analytics, chúng tôi sẽ không cố gắng cung cấp thông tin thiết lập và sử dụng toàn diện. Thay vào đó, chúng tôi sẽ đưa bạn đến các tài liệu chính để đọc thêm và hướng dẫn, đồng thời nêu bật các điểm chính cần cân nhắc về hoạt động phân tích cho ứng dụng công cụ định vị của bạn.
Thiết lập Google Analytics
Nếu đang sử dụng Google Analytics với ứng dụng của mình thì bạn có thể bỏ qua phần này.
Sau đây là ví dụ về "Thẻ toàn cầu" mà bạn sẽ dán vào trang web của mình để bật Google Analytics.
<!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/ gtag/js?id=G-XR5B5D4NW0"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XR5B5D4NW0'); </script>
Cho dù bạn đang sử dụng Trình quản lý thẻ của Google hay thêm Google Analytics trực tiếp vào trang web, thì điều quan trọng là bạn phải hiểu cách sử dụng phương thức triển khai Google Analytics để thực hiện những việc sau:
- Kích hoạt các lượt tương tác của người dùng, chẳng hạn như lượt nhấp, có thể được đo lường độc lập với lượt xem trang trên trang web (sự kiện).
- Xem dữ liệu thô (metrics) trong các nhóm có ý nghĩa (phương diện hoặc phương diện tuỳ chỉnh).
Sử dụng sự kiện tuỳ chỉnh
Sau đây là ví dụ về cách xác định sự kiện tuỳ chỉnh trong công cụ định vị của bạn:
gtag('event', 'location', { 'method': 'address' });
Bạn cần phải đặt tên cho event
và method
đủ rõ ràng để bạn có thể hiểu được các sự kiện trong báo cáo. Hãy kích hoạt các lượt tương tác đó cho các lượt tương tác cụ thể mà bạn muốn đo lường, chẳng hạn như khi người dùng chọn và xử lý trong danh sách thả xuống Tự động hoàn thành, như trong hình sau.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/event_autocomplete_select.png?authuser=7&hl=vi)
Bạn có thể gửi lệnh gọi theo dõi sau đây đến Google Analytics sử dụng sự kiện và phương thức bạn đã xác định. (Chúng tôi sẽ trình bày mỗi tham số truy vấn trên một dòng riêng để dễ đọc.)
https://www.google-analytics.com/g/collect?v=2 &tid=G-XR5B5D4NW0 >m=2oe550 &_p=64678170 &sr=1920x1200 &ul=fr &cid=489856786.1598861364 &_s=2 &dl=http%3A%2F%2.storelocator.html &dt=Store%20Locator &sid=1620827159 &sct=1 &seg=1 &en=location &_et=6032 &ep.method=address
Hình sau đây cho thấy cách lệnh gọi Google Analytics xuất hiện trong chế độ xem Inspect (Kiểm tra) của trình duyệt, trên thẻ Network. (Nhấp để phóng to).
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/event_inspect.png?authuser=7&hl=vi)
Bạn có thể xác minh rằng các thẻ sự kiện tuỳ chỉnh của mình được ghi lại chính xác bằng cách xem chế độ xem "Thời gian thực" trong Google Analytics. Ví dụ: sự kiện "vị trí" được thiết lập trước đó cho tính năng Tự động hoàn thành về địa điểm sẽ xuất hiện trong Google Analytics như minh hoạ trong các hình sau.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/event_realtime.png?authuser=7&hl=vi)
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/event_realtime2.png?authuser=7&hl=vi)
Ngoài ra, bạn có thể theo dõi các sự kiện theo thời gian thực bằng DebugView như trong hình sau. Xin lưu ý rằng bạn phải đợi 24 giờ thì mới có thể truy cập vào báo cáo Sự kiện đầy đủ trong mục Mức độ tương tác > Sự kiện của Google Analytics.
![](https://developers-dot-devsite-v2-prod.appspot.com/static/maps/solutions/store-locator/images/event_debug.png?authuser=7&hl=vi)
Bạn cũng có thể phát triển và đo lường các chiến lược để thúc đẩy thêm nhiều lượt ghé thăm cửa hàng thực tế từ ứng dụng công cụ định vị của bạn. Ví dụ: Google Analytics cung cấp Lượt ghé thăm cửa hàng thực tế trong Analytics để liên kết số liệu phân tích lượt ghé thăm cửa hàng thực tế (do Google Ads đo lường) với số liệu phân tích của công cụ định vị. Bạn cũng có thể phát triển chiến lược hướng ứng dụng đến vị trí của riêng mình, chẳng hạn như ưu đãi trực tuyến có thể sử dụng tại các địa điểm thực tế của bạn.
Các chỉ số trên Trang doanh nghiệp
Ngoài việc theo dõi các sự kiện, chỉ số và phương diện mà bạn quan tâm bằng Google Analytics, Trang doanh nghiệp còn có các metrics riêng. Ví dụ: nếu thêm đường liên kết đặt lịch hẹn và đường liên kết đến sản phẩm/dịch vụ tại địa phương vào công cụ định vị, bạn có thể xem chỉ số về các lượt xem và lượt nhấp đó.
Yêu cầu mẫu sau đây dành cho API Trang doanh nghiệp sẽ yêu cầu nhiều loại chỉ số. Để theo dõi số lượt nhấp vào mặt hàng, chỉ số LOCAL_POST_VIEWS_SEARCH
và
LOCAL_POST_ACTIONS_CALL_TO_ACTION
sẽ là chỉ số phù hợp nhất.
Hãy mở rộng để xem yêu cầu mẫu.
POST https://mybusiness.googleapis.com/v4/accounts/111098884960528804666/locations:reportInsights Body: { "locationNames": [ "accounts/111098884960528804666/locations/15899957830169237700" ], "basicRequest": { "metricRequests": [ { "metric": "QUERIES_DIRECT" }, { "metric": "QUERIES_INDIRECT" }, { "metric": "VIEWS_MAPS" }, { "metric": "VIEWS_SEARCH" }, { "metric": "ACTIONS_DRIVING_DIRECTIONS" }, { "metric": "LOCAL_POST_VIEWS_SEARCH" }, { "metric": "LOCAL_POST_ACTIONS_CALL_TO_ACTION" } ], "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } } }
Hãy mở rộng để xem phản hồi mẫu.
{ "locationMetrics": [ { "locationName": "accounts/111098884960528804666/locations/15899957830169237700", "timeZone": "Asia/Singapore", "metricValues": [ { "metric": "QUERIES_DIRECT", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "82" } }, { "metric": "QUERIES_INDIRECT", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "1493" } }, { "metric": "VIEWS_MAPS", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "1571" } }, { "metric": "VIEWS_SEARCH", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "631" } }, { "metric": "ACTIONS_DRIVING_DIRECTIONS", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "3" } }, { "metric": "LOCAL_POST_ACTIONS_CALL_TO_ACTION", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "42" } }, { "metric": "LOCAL_POST_VIEWS_SEARCH", "totalValue": { "metricOption": "AGGREGATED_TOTAL", "timeDimension": { "timeRange": { "startTime": "2021-01-01T01:01:23.045123456Z", "endTime": "2021-04-30T23:59:59.045123456Z" } }, "value": "11" } } ] } ] }
Câu trả lời chứa các chỉ số, đáng chú ý nhất là:
- 1571 lượt xem vị trí trên Google Maps
- 631 lượt xem vị trí trên Google Tìm kiếm.
- 3 yêu cầu về Chỉ đường lái xe đến vị trí.
- 42
LOCAL_POST_ACTIONS_CALL_TO_ACTION
lượt nhấp vào mặt hàng. - 11 lượt xem bài đăng tại địa phương trên Google Tìm kiếm.
Một lựa chọn chỉ số khác bao gồm sử dụng tính năng Đặt chỗ bằng Google để tạo các đường liên kết hành động. Khi người dùng nhấp vào các đường liên kết hành động được tạo trong tính năng Đặt chỗ bằng Google, bạn có thể ghi lại các hành động đó vào Google Analytics. Nhờ đó, bạn có thể theo dõi lượt chuyển đổi trong Google Analytics. Hãy xem tài liệu về tính năng theo dõi lượt chuyển đổi để biết thêm thông tin.
Bất kể bạn sử dụng chiến lược chỉ số nào, hoạt động đo lường không chỉ có mục đích là xem bạn đang thực hiện như thế nào so với KPI của mình. Những con số này cũng giúp bạn hiểu được tác động của những điểm cải tiến này về bộ định vị đối với công việc kinh doanh của mình. Ngoài ra, bạn có thể so sánh các chỉ số từ Google Analytics trên công cụ định vị với các chỉ số của Trang doanh nghiệp. Ví dụ: bằng cách so sánh các chỉ số này, bạn có thể thấy có bao nhiêu khách hàng nhận chỉ đường từ công cụ định vị của bạn và sau đó ghé thăm vị trí thực tế của bạn từ Google Maps.
Công cụ định vị nâng cao bổ sung
Tuỳ thuộc vào nhu cầu của doanh nghiệp hoặc nhu cầu của người dùng, bạn có thể nâng cao trải nghiệm của người dùng hơn nữa.
Đang gửi chỉ đường đến thiết bị di động
Để giúp người dùng đến một vị trí dễ dàng hơn nữa, bạn có thể gửi cho họ đường liên kết chỉ đường qua tin nhắn hoặc email. Khi người dùng nhấp vào nút này, ứng dụng Google Maps sẽ chạy trên điện thoại của họ nếu được cài đặt hoặc maps.google.com sẽ tải trong trình duyệt web của thiết bị. Cả hai trải nghiệm này đều cung cấp cho người dùng tùy chọn sử dụng tính năng chỉ đường từng chặng, bao gồm cả hướng dẫn bằng giọng nói, để đến điểm đến.
Sử dụng
URL của Maps để soạn một URL đường đi như sau, trong đó tên địa điểm được mã hoá URL là tham số destination
và mã địa điểm là tham số destination_place_id
. Bạn không phải trả phí khi soạn hoặc sử dụng
URL của Maps, vì vậy, bạn không cần thêm khoá API vào URL.
https://www.google.com/maps/dir/?api=1&destination=Google%20London&destination_place_id=ChIJVSZzVR8FdkgRTyQkxxLQmVU
Bạn có thể tuỳ ý cung cấp tham số truy vấn origin
bằng cách sử dụng cùng định dạng địa chỉ với đích đến. Tuy nhiên, nếu bỏ qua thuộc tính này, thông tin đường đi sẽ bắt đầu từ vị trí hiện tại của người dùng (có thể khác với vị trí họ đang dùng ứng dụng Locator Plus). URL của Maps cung cấp thêm các lựa chọn về tham số truy vấn, chẳng hạn như travelmode
và dir_action=navigate
để bắt đầu xem đường đi khi đã bật tính năng điều hướng.
Đường liên kết có thể nhấp vào này (mở rộng URL ví dụ ở trên) đặt origin
làm sân vận động bóng đá London và sử dụng travelmode=transit
để cung cấp đường đi bằng phương tiện công cộng tới điểm đến.
Để gửi tin nhắn văn bản hoặc email chứa URL này, bạn nên dùng một ứng dụng của bên thứ ba như twilio. Nếu đang sử dụng App Engine, bạn có thể dùng các công ty bên thứ ba để gửi tin nhắn SMS hoặc email. Để biết thêm thông tin, hãy xem bài viết Gửi tin nhắn bằng Dịch vụ bên thứ ba.
Hiển thị Chế độ xem đường phố để giúp người dùng hình dung các vị trí
Đối với nhiều địa điểm trên thế giới, Chế độ xem đường phố có thể được dùng để hiển thị bên ngoài một vị trí, cung cấp cho người dùng hình ảnh về vị trí trước khi họ đến. Bạn có thể cung cấp Chế độ xem đường phố ở dạng tương tác (trên web) hoặc tĩnh (API), tuỳ thuộc vào việc bạn muốn người dùng "quan sát" khu vực 360 độ hay không. Chế độ xem đường phố cũng được hỗ trợ trên Android và iOS.
Xác định vị trí của người dùng bằng Vị trí địa lý
Trong hầu hết trường hợp, bạn có thể xác định vị trí của người dùng bằng các dịch vụ vị trí tích hợp sẵn trong thiết bị hoặc trình duyệt của họ. Chúng tôi đưa ra một ví dụ về việc sử dụng tính năng Định vị vị trí trong HTML5 của trình duyệt để hiển thị vị trí địa lý của người dùng hoặc thiết bị trên bản đồ của Google, đồng thời có tài liệu về cách yêu cầu cấp quyền và nhận thông tin vị trí trong Android và iOS. Tuy nhiên, có thể có những trường hợp bạn muốn một trình tìm vị trí thay thế, chẳng hạn như nếu dịch vụ vị trí thiết bị đã bị tắt hoặc bạn lo ngại về việc thông tin vị trí của thiết bị bị giả mạo.
API vị trí địa lý là một API phía máy chủ trả về vị trí và bán kính chính xác dựa trên thông tin về các trạm phát sóng và nút Wi-Fi mà ứng dụng có thể phát hiện. Bạn có thể sử dụng Định vị vị trí làm cơ chế sao lưu để xác định vị trí của người dùng, hoặc bạn có thể sử dụng tính năng này để kiểm tra chéo vị trí mà thiết bị báo cáo.
Kết hợp dữ liệu vị trí tùy chỉnh với Thông tin chi tiết về địa điểm
Trong phần Cung cấp thông tin chi tiết về địa điểm trước đó, chúng tôi đã đề cập đến việc sử dụng Thông tin chi tiết về địa điểm để cung cấp cho người dùng nhiều thông tin phong phú về địa điểm của bạn, chẳng hạn như giờ mở cửa, ảnh và bài đánh giá.
Bạn nên tìm hiểu chi phí của các trường dữ liệu trong Thông tin chi tiết về địa điểm. Các trường này được phân loại là Cơ bản, Thông tin liên hệ và Dữ liệu về bầu không khí. Để quản lý chi phí, một chiến lược là kết hợp thông tin bạn đã có về các địa điểm của mình với thông tin mới (thường là Dữ liệu cơ bản và Dữ liệu liên hệ) trên Google Maps, chẳng hạn như thông tin về việc đóng cửa tạm thời, giờ hoạt động vào ngày lễ, điểm xếp hạng của người dùng, ảnh và bài đánh giá. Nếu đã có thông tin liên hệ cho các vị trí của mình, bạn sẽ không cần yêu cầu các trường đó từ Thông tin chi tiết về địa điểm và có thể ràng buộc yêu cầu của bạn chỉ tìm nạp các trường Cơ bản hoặc Dữ liệu khí quyển, tuỳ thuộc vào nội dung bạn muốn hiển thị.
Bạn có thể có dữ liệu địa điểm của riêng mình để bổ sung hoặc sử dụng thay vì Chi tiết địa điểm. Lớp học lập trình cho trình định vị toàn ngăn xếp cung cấp một ví dụ về cách sử dụng GeoJSON với cơ sở dữ liệu để lưu trữ và truy xuất thông tin vị trí của riêng bạn.