Управляйте размером иконки с помощью agm-маркера

Я пытаюсь применить CSS для высоты и ширины к значку.

Код, который я использовал для иконки с agm-маркером ниже: -

<agm-marker *ngFor="let m of mapData; let i = index"
    [latitude]="m.lat"
    [longitude]="m.lng"
    [label]="labelOptions"
    [iconUrl]="iconUrl">
</agm-marker>

.ts

public iconUrl = 'http://developerdrive.developerdrive.netdna-cdn.com/wp-content/uploads/2013/08/ddrive.png';

Пожалуйста, дайте мне знать, как я могу манипулировать размером этой иконки. Это пользовательский значок, который я добавил

4 ответа

Вы можете передать Icon объект в качестве параметра IconURL, Icon имеет scaledSize параметр, который вы можете изменить. Это может быть примером:

    icon = {
              url: http://developerdrive.developerdrive.netdna-cdn.com/wp-content/uploads/2013/08/ddrive.png',
              scaledSize: {
                width: desiredWidthScale,
                height: desiredHeightScale
              }
}

Так что вы можете просто использовать:

<agm-marker *ngFor="let m of mapData; let i = index"
    [latitude]="m.lat"
    [longitude]="m.lng"
    [label]="labelOptions"
    [iconUrl]="icon">
</agm-marker>

Учтите, что вы изменяете масштаб изображения, а не фактический размер.

Чтобы построить ответ на золастро. Вы можете передать объект google.map.Icon в атрибут iconUrl agm-marker. Но ваш компилятор может пожаловаться на то, что он не может быть назначен ожидаемому типу «строка». Чтобы обойти это, вы можете просто инкапсулировать свой объект значка в $any

.тс

      icon = {
  url: 'http://developerdrive.developerdrive.netdna-cdn.com/wp-content/uploads/2013/08/ddrive.png',
  scaledSize: {
    width: desiredWidthScale,
    height: desiredHeightScale
  }
}

.html

      <agm-marker *ngFor="let m of mapData; let i = index"
    [latitude]="m.lat"
    [longitude]="m.lng"
    [label]="labelOptions"
    [iconUrl]="$any(icon)">
</agm-marker>

Попробуй это

  icon = { url: '../../assets/images/yyy.svg', scaledSize: {height: 40, width: 40}

Вручную измените размер изображения / значка в краске и сохраните его на 30 или 40 пикселей. Это решит проблему.

Другие вопросы по тегам