我正在构建车辆跟踪应用程序,我正在使用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>
在这里,我需要将标记替换为箭头,与此图像完全相同,
我需要将标记更改为箭头,就像在第二张图像中一样。明确帮助我达到预期效果。
答案 0 :(得分:15)
接受的答案不起作用,因为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
}
}
答案 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纯黑色 }
答案 3 :(得分:0)
根据expertsuggestion,我以不同的方式使用了标记图标
<agm-map>
<agm-marker
[latitude]="lat"
[longitude]="lng"
iconUrl="path of your image"
>
</agm-marker>
</agm-map>