如何在@angular/google-maps 模块中用自定义图标替换谷歌地图标记图标

Vir*_*ngh 5 angular-material angular

组件.html:

  <google-map (mapClick)="click($event)" 
  [center]="center" [options]="options" height="500px" width="100%"
    [zoom]="zoom">

    <map-marker (mapClick)="openInfoWindow(marker)" [clickable]="true"
  
    *ngFor="let marker of markers" [position]="marker.position" [label]="marker.label"
      [title]="marker.title" [options]="marker.options">
    </map-marker>
    <map-info-window>Info Window content</map-info-window>
  </google-map>
Run Code Online (Sandbox Code Playgroud)

组件.ts:

options: google.maps.MapOptions = {
    zoomControl: true,
    scrollwheel: false,
    disableDoubleClickZoom: true,
    maxZoom: 15,
    minZoom: 8,
  }
Run Code Online (Sandbox Code Playgroud)

我试过在选项中添加带有 url 值的图标属性,在地图标记中传递输入但没有任何效果

https://github.com/angular/components/tree/master/src/google-maps#readme

Jos*_*cid 5

至于Angular Google Maps Marker ( https://github.com/angular/components/tree/master/src/google-maps/map-marker ) 文档,选项包括所有map-marker不是“方便输入”的对象属性:

...该组件提供选项输入以及位置、标题、标签和可点击的便利输入,并支持所有 google.maps.Marker 事件作为输出。

因此,任何其他不是“便利输入”的属性都必须在 JSON 对象内传递,就像数组上的每个标记对象一样:

      const markers =[
      {...},
      {...},
      [{
        position:{
           lat: 24.1  + ((Math.random() - 0.5) * 2) / 100,
           lng: 0.2 + ((Math.random() - 0.5) * 2) / 100,
        },
        visible: true,
        opacity: 0.6,
        label: {
           color: '#333',
           text: 'My Label',
        },
        title: 'My Title',
           options = {
           draggable: false, 
           icon: '../assets/icons/MyMarker.png'
        }
      }],
      {...},
      {...}
    ];
Run Code Online (Sandbox Code Playgroud)

或者,至少,在文档完成之前必须推断出这一点。

只需在您的组件上添加此代码,并用所需的数据填充省略号对象,或者仅根据您自己的数据创建具有此结构的数组。