如何在 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 纯黑色
}
我正在构建一个车辆跟踪应用程序,我正在使用 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 纯黑色 }