如何在 agm-map 中制作自定义箭头标记?

How to make custom arrow mark in agm-map?

我正在构建一个车辆跟踪应用程序,我正在使用 agm-map-marker 来显示图像中这样定位的车辆,

而Livetracking.component.html代码是,

<agm-map #gm [latitude]="lat" [longitude]="lng" [(zoom)]="zoom" [mapTypeControl]="true">
            <agm-marker class="mapMarker" *ngFor="let device of devices;"
                [latitude]="device.latitude" [longitude]="device.longitude"
                (markerClick)="gm.lastOpen?.close(); gm.lastOpen = infoWindow;mapMarkerInfo(m);">
            </agm-marker>
</agm-map>

这里我需要把marker换成箭头,就像这张图一样,

我需要将标记更改为箭头,如第二张图片所示。请帮助我达到预期的结果。

您可以使用现有的 api 并设置 iconUrl

<agm-marker
   [latitude]="location.latitude"
   [longitude]="location.longitude"
   [iconAnchorX]="10"
   [iconAnchorY]="10"
   [iconHeight]="20"
   [iconWidth]="20">
   [iconUrl]="location.icon">
 </agm-marker>

已接受的答案将无效,因为这些不是 agm-marker 的属性。

iconUrl 属性 中,您可以使用以下任何类型:

string

Icon: https://developers.google.com/maps/documentation/javascript/reference/3.exp/marker#Icon

Symbol: https://developers.google.com/maps/documentation/javascript/reference/3.exp/marker#Symbol

例如,要使用具有所需大小的自定义图像标记(在本例中为 SVG),您可以在 [iconUrl] 属性 中使用此对象:

{
    url: './assets/images/blue-marker.svg',
    scaledSize: {
        width: 40,
        height: 60
    }
}

你必须在项目中包含 agm-overlays 然后你可以覆盖绘制,它还支持在地图上添加自定义 div。

<agm-overlay
          *ngFor="let driver of driversList"
          [latitude]="driver.latitude"
          [longitude]="driver.longitude"
        >
          <div>
            <img
              style="cursor: pointer;"
              [ngClass]="{
                online: driver.status === 'online',
                offline: driver.status === 'offline'
              }"
              src="{{
               driver.profileImageURL
              }}"
            />

          </div>
        </agm-overlay>

将此添加到 css 文件

.在线{ 边框:3px 纯黑色 }