Vẽ trên bản đồ

Bạn có thể thêm đối tượng vào bản đồ để chỉ định các điểm, đường, khu vực hoặc tập hợp đối tượng. Maps JavaScript API gọi các đối tượng này là lớp phủ. Lớp phủ được liên kết với toạ độ vĩ độ/kinh độ, vì vậy, lớp phủ sẽ di chuyển khi bạn kéo hoặc thu phóng bản đồ.

Loại lớp phủ

Bản đồ 3D chân thực trong API Maps JavaScript hỗ trợ một số loại lớp phủ mà bạn có thể thêm theo phương thức lập trình:

  • Các đường trên bản đồ được hiển thị bằng đường đa tuyến, được biểu thị dưới dạng một trình tự điểm được sắp xếp theo thứ tự và được kết nối bằng các đoạn đường.
  • Các khu vực có hình dạng tuỳ ý trên bản đồ được hiển thị bằng đa giác. Giống như các đường đa tuyến, đa giác là một chuỗi vị trí được sắp xếp theo thứ tự. Không giống như đường đa tuyến, đa giác xác định một vùng mà chúng bao quanh.

Đường đa tuyến

Đường đa tuyến được dùng để hiển thị các đường trên bản đồ dựa trên trình tự vị trí đã sắp xếp.

Thêm đường đa tuyến

Đường đa tuyến màu đỏ được vẽ trên bề mặt trái đất

<gmp-map-3d center="0,-180,15000000">
  <gmp-polyline-3d altitude-mode="clamp-to-ground" stroke-color="red" stroke-width="10"></gmp-polyline-3d>
</gmp-map-3d>

<script async src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY>&v=alpha&libraries=maps3d"></script>

<script>
  const polyline = document.querySelector('gmp-polyline-3d');

  customElements.whenDefined(polyline.localName).then(() => {
    polyline.coordinates = [
      { lat: 37.772, lng: -122.214 },
      { lat: 21.291, lng: -157.821 },
      { lat: -18.142, lng: 178.431 },
      { lat: -27.467, lng: 153.027 }
    ];
  });
</script>

Xoá đường đa tuyến

const polyline = document.querySelector('gmp-polyline-3d');
polyline.remove();

Hình nhiều đường bị che khuất

Bạn có thể kiểm soát chế độ hiển thị của các phân đoạn bị che khuất bằng cách sử dụng thuộc tính draws-occluded-segments.

Đường đa tuyến bị che khuất vẽ tuyến đường tuỳ ý qua trung tâm thành phố San Francisco

<gmp-map-3d heading="25" range="2500" tilt="45" center="37.7905,-122.3989,165">
  <gmp-polyline-3d altitude-mode="relative-to-ground" stroke-color="rgba(25, 102, 210, 0.75)"  stroke-width="10"></gmp-polyline-3d>
</gmp-map-3d>

<script async src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY>&v=alpha&libraries=maps3d"></script>

<script>
  const polyline = document.querySelector('gmp-polyline-3d');

  customElements.whenDefined(polyline.localName).then(() => {
    polyline.coordinates = [
      {lat: 37.80515638571346, lng: -122.4032569467164},
      {lat: 37.80337073509504, lng: -122.4012878349353},
      {lat: 37.79925208843463, lng: -122.3976697250461},
      {lat: 37.7989102378512, lng: -122.3983408725656},
      {lat: 37.79887832784348, lng: -122.3987094864192},
      {lat: 37.79786443410338, lng: -122.4066878788802},
      {lat: 37.79549248916587, lng: -122.4032992702785},
      {lat: 37.78861484290265, lng: -122.4019489189814},
      {lat: 37.78618687561075, lng: -122.398969592545},
      {lat: 37.7892310309145, lng: -122.3951458683092},
      {lat: 37.7916358762409, lng: -122.3981969390652}
    ];
  });
</script>

Xem mẫu

Đa giác

Đa giác được dùng để hiển thị các khu vực có hình dạng trên bản đồ. Giống như đa tuyến, đa giác là một chuỗi các vị trí được sắp xếp theo thứ tự. Tuy nhiên, đa giác xác định vùng mà chúng bao quanh.

Đa giác đơn giản

Đa giác màu đỏ hình tam giác có các cạnh màu xanh lam xung quanh khu vực Lower Manhattan

<gmp-map-3d center="40.6842,-74.0019,1000" heading="340" tilt="70">
  <gmp-polygon-3d altitude-mode="clamp-to-ground" fill-color="#ff0000" stroke-color="rgba(25, 102, 210, 0.75)"  stroke-width="8" draws-occluded-segments></gmp-polygon-3d>
</gmp-map-3d>

<script async src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY>&v=alpha&libraries=maps3d"></script>

<script>
  const polygon = document.querySelector('gmp-polygon-3d');

  customElements.whenDefined(polygon.localName).then(() => {
    polygon.outerCoordinates = [
      {lat: 40.7144, lng: -74.0208},
      {lat: 40.6993, lng: -74.019},
      {lat: 40.7035, lng: -74.0004},
      {lat: 40.7144, lng: -74.0208}
    ];
  });
</script>

Xoá đa giác

const polygon = document.querySelector('gmp-polygon-3d');
polygon.remove();

Đa giác được đẩy ra

Lăng trụ tam giác màu đỏ có các cạnh màu xanh dương xung quanh khu vực phía dưới Manhattan với độ cao 1000 mét

<gmp-map-3d center="40.7079,-74.0132,100" heading="30" tilt="55" range="5000">
  <gmp-polygon-3d altitude-mode="relative-to-ground" fill-color="#ff0000" fill-opacity="0.5" stroke-color="#0000ff" stroke-width="8" extruded><gmp-polygon-3d>
</gmp-map-3d>

<script async src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY>&v=alpha&libraries=maps3d"></script>

<script>
  const polygon = document.querySelector('gmp-polygon-3d');

  customElements.whenDefined(polygon.localName).then(() => {
    polygon.outerCoordinates = [
      {lat: 40.7144, lng: -74.0208, altitude: 1000},
      {lat: 40.6993, lng: -74.019, altitude: 1000},
      {lat: 40.7035, lng: -74.0004, altitude: 1000},
      {lat: 40.7144, lng: -74.0208, altitude: 1000}
    ];
  });
</script>

Xem mẫu

Đa giác có lỗ bên trong

Đa giác màu đỏ hình tam giác có một lỗ ở giữa và các cạnh màu xanh dương xung quanh Lower Manhattan

<gmp-map-3d center="40.7093,-74.0122,10" heading="30" tilt="15" range="5000">
  <gmp-polygon-3d altitude-mode="relative-to-ground" fill-color="#ff0000" fill-opacity="0.5" stroke-color="#0000ff" stroke-width="8" extruded><gmp-polygon-3d>
</gmp-map-3d>

<script async src="https://maps.googleapis.com/maps/api/js?key=<YOUR_API_KEY>&v=alpha&libraries=maps3d"></script>

<script>
  const polygon = document.querySelector('gmp-polygon-3d');

  customElements.whenDefined(polygon.localName).then(() => {
    polygon.outerCoordinates = [
      {lat: 40.7144, lng: -74.0208, altitude: 1000},
      {lat: 40.6993, lng: -74.019, altitude: 1000},
      {lat: 40.7035, lng: -74.0004, altitude: 1000},
      {lat: 40.7144, lng: -74.0208, altitude: 1000}
    ];
    polygon.innerCoordinates = [
      [
        {lat: 40.71, lng: -74.0175, altitude: 1000},
        {lat: 40.703, lng: -74.0165, altitude: 1000},
        {lat: 40.7035, lng: -74.006, altitude: 1000},
        {lat: 40.71, lng: -74.0175, altitude: 1000}
      ]
    ];
  });
</script>