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

时间:2017-10-20 06:37:41

标签: angular google-maps google-maps-api-3 google-maps-markers arrows

我正在构建车辆跟踪应用程序,我正在使用agm-map-marker来显示图像中这样的车辆, enter image description here

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>

在这里,我需要将标记替换为箭头,与此图像完全相同,

enter image description here

我需要将标记更改为箭头,就像在第二张图像中一样。明确帮助我达到预期效果。

4 个答案:

答案 0 :(得分:15)

接受的答案不起作用,因为agm-marker没有属性。

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

string

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

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

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

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

答案 1 :(得分:8)

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

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

答案 2 :(得分:0)

您必须在项目中包含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文件中

.online {   边框:3px纯黑色 }

enter image description here

答案 3 :(得分:0)

根据expertsuggestion,我以不同的方式使用了标记图标

   <agm-map> 
   <agm-marker 

 [latitude]="lat" 
 [longitude]="lng"
 iconUrl="path of your image"
  >

     </agm-marker>

  </agm-map>