File

packages/location/src/lib/location-map.component.ts

Description

Shows Google Maps Map

Metadata

selector ec-location-map
styleUrls ./location-map.component.scss
templateUrl ./location-map.component.html

Index

Methods
Inputs
Outputs

Inputs

center
Type : literal type
Default value : { latitude: 48.8093253, longitude: 9.159388100000001 }

The desired map center

disabled
Type : boolean

If true, no marker can be chaned

readOnly
Type : boolean

If true, no markers can be changed or set

value
Type : literal type

Form input component

Outputs

changed
Type : EventEmitter<any>

Emits when the marker has been changed

Methods

markerDragEnd
markerDragEnd(coords)

changes value on marker dragend

Parameters :
Name Optional
coords No
Returns : void
setValue
setValue(value)

sets the value cand changes the center

Parameters :
Name Optional
value No
Returns : void
import { Component, EventEmitter, Input, Output } from '@angular/core';

/** Shows Google Maps Map */
@Component({
  selector: 'ec-location-map',
  templateUrl: './location-map.component.html',
  styleUrls: ['./location-map.component.scss'],
})
export class LocationMapComponent {
  /** The desired map center */
  @Input() center: { longitude: any; latitude: any } = { latitude: 48.8093253, longitude: 9.159388100000001 };
  /** If true, no markers can be changed or set */
  @Input() readOnly: boolean;
  /** If true, no marker can be chaned */
  @Input() disabled: boolean;
  /** Emits when the marker has been changed */
  @Output() changed: EventEmitter<any> = new EventEmitter();
  /** Form input component */
  @Input() value: {
    longitude: number;
    latitude: number;
  };

  /** sets the value cand changes the center */
  setValue(value) {
    if (this.disabled) {
      console.warn('cannot change map value: disabled!');
      return;
    }
    this.value = value;
    if (value) {
      this.center = value;
    }
  }
  /** changes value on marker dragend */
  markerDragEnd(coords) {
    if (!coords) {
      console.warn('no coords');
      return;
    }
    if (this.disabled) {
      return;
    }
    const position = { longitude: coords.lng, latitude: coords.lat };
    this.setValue(position);
    this.changed.emit(position);
  }
}
<agm-map [latitude]="center?.latitude" [longitude]="center?.longitude">
    <agm-marker #marker [markerDraggable]="!readOnly&&!disabled" (dragEnd)="markerDragEnd($event?.coords)" [latitude]="value?.latitude"
        [longitude]="value?.longitude" *ngIf="value"></agm-marker>
</agm-map>

./location-map.component.scss

:host {
    height: 300px;
}
agm-map {
    height: 300px;
}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""