Ночное наложение с использованием предложенных вами js (т. Е. https://github.com/rossengeorgiev/nite-overlay) может быть успешно использовано с agm-map с использованием (mapReady)="mapReady($event)"
.
Помимо необходимого шага для использования agm-map (я предполагаю, что вы можете нарисовать карту на своей странице, используя agm-map), убедитесь, что вы установили @types/googlemaps
npm install --save @types/googlemaps
И, что вы скопировали файл nite-overlay.js
в вашу папку src
и включили его в файл .angular-cli.json
следующим образом.
...
"scripts": [
"nite-overlay.js"
],
...
Ниже приводится рабочий код.
map.component.ts
import { Component, OnInit, NgZone } from '@angular/core';
import { MapsAPILoader } from '@agm/core';
import {} from '@types/googlemaps';
declare var google: any;
declare var nite: any;
@Component({
selector: 'app-map',
templateUrl: './map.component.html',
styleUrls: ['./map.component.css']
})
export class MapComponent implements OnInit {
lat: number = 26.288644;
lng: number = 73.021302;
zoom = 4;
m: Marker = {lat:this.lat, lng:this.lng};
constructor(
private loader: MapsAPILoader,
private zone: NgZone
) { }
clickedMarker(label: string, index: number) {
console.log(`clicked the marker: ${label || index}`)
}
mapClicked($event: any) {
let m: Marker = {lat:$event.coords.lat, lng:$event.coords.lng};
this.m = m;
this.getAddress(m.lat, m.lng, this.setAddress.bind(this));
}
markerDragEnd(m: Marker, $event: MouseEvent) {
console.log('dragEnd', m, $event);
}
mapReady($event: any) {
nite.init($event);
}
ngOnInit() {
}
}
// just an interface for type safety.
interface Marker {
lat: number;
lng: number;
label?: string;
draggable?: boolean;
}
map.component.html
<agm-map [latitude]="lat" [longitude]="lng" [scrollwheel]="false" [zoom]="zoom" (mapClick)="mapClicked($event)" (mapReady)="mapReady($event)">
<agm-marker *ngIf="m" [latitude]="m.lat" [longitude]="m.lng" ></agm-marker>
</agm-map>
ОБНОВЛЕНИЕ, КАК ИМПОРТИРОВАТЬ JS В Angular 6
Мой приведенный выше рабочий пример кода использует angular 5. Но проекты CLI в angular 6 и выше используют angular.json
вместо .angular-cli.json
для сборки и конфигурации проекта.
Ref - Как использовать внешние файлы JS в Angular 6 , как использовать внешний файл JS в Angular 6.