Angular-google-maps: Zugriff auf das vollständige google.maps-Objekt

Erstellt am 10. März 2016  ·  8Kommentare  ·  Quelle: SebastianM/angular-google-maps

Hallo, ich liebe deine bisherige Arbeit, bin aber neugierig, wird diese Bibliothek jemals Zugriff auf das vollständige google.maps-Objekt gewähren, ähnlich wie bei der Implementierung von google-maps durch angle1? (siehe hier: http://angular-ui.github.io/angular-google-maps/#!/api/GoogleMapApi)

Wenn Sie das Objekt google.maps abrufen, können Sie beispielsweise ...

A1-Code zum Erstellen eines neuen DirectionsRenderer und DirectionsService:

            uiGmapGoogleMapApi.then(function(maps) {
                vm.gmaps = maps;
                vm.map.directionsDisplay = new vm.gmaps.DirectionsRenderer();
                vm.map.directionsService = new vm.gmaps.DirectionsService();
            });

Oder um ein neues LatLng-Objekt zu erstellen:

var latlng = new vm.gmaps.LatLng(lat, lng);

Wird das mit dieser Bibliothek möglich sein?

BEARBEITEN: Ich sehe, dass das Google-Objekt global verfügbar ist. Wir können also var latlng = new google.maps.LatLng (lat, lng) ausführen. Ist es nicht ein Ziel des Projekts, zu verhindern, dass das Google-Objekt den globalen Namespace verschmutzt?

BEARBEITEN zu BEARBEITEN: Siehe auch jetzt, dass wir die LatLngLiteral-Schnittstelle verwenden können, so dass ein Problem behandelt wird:

import {LatLngLiteral} from 'angular2-google-maps/core';

...

var latlng = <LatLngLiteral>{lat: this.latitude, lng: this.longitude};
this.map.setCenter(latlng);
stale discussion / question

Hilfreichster Kommentar

Wenn ich hier alles richtig verstehe, wäre es dann nicht die eckigste Art, damit umzugehen, einen Dienst zu haben, der das globale Objekt zurückgibt? Dies würde das Verspotten zum Testen ermöglichen und globale Abhängigkeiten vermeiden.

Alle 8 Kommentare

Hallo cviccaro,

Bitte beziehen Sie sich auf den unten angegebenen Kommentar, um Zugriff auf das google.maps-Objekt zu erhalten.

https://github.com/SebastianM/angular2-google-maps/issues/139#issuecomment -187343516

@ Parmod-Arora,

Vielen Dank. Ich habe es geschafft, das Kartenobjekt abzurufen, habe mich aber auf die gesamte SDK-API bezogen. Der DirectionsRenderer und der DirectionsService befinden sich nicht im Kartenobjekt selbst, sondern im Namespace google.maps.

Wenn ich dies überdenke, stelle ich mir jedoch vor, dass der direkte Zugriff auf den vollständigen google.maps-Namespace nicht beabsichtigt ist, sondern dass Wrapper um jeden Namespace später verfügbar sein werden.

@cviccaro ,

Korrigieren Sie mich, wenn ich falsch liege. Sie möchten auf google.maps zugreifen und mit den Diensten DirectionsRenderer und DirectionsService spielen.

Unten ist der Code.

declare var google: any;

@Directive({
  selector: 'my-comp',  // <home></home>
})
export class MyComp {
  constructor(private _mapsWrapper:GoogleMapsAPIWrapper){
    _mapsWrapper.getMap().then((m: mapTypes.GoogleMap) => {
      console.log(google.maps);
    });
  }
}

@ Parmod-Arora Genau. Wie ich in meiner Bearbeitung zum ursprünglichen Beitrag geschrieben habe, sehe ich, dass das globale Google-Objekt tatsächlich verfügbar ist, daher ist meine Frage wohl etwas abgewichen. Wird dieses Projekt das Google-Objekt schließlich aus dem globalen Namespace entfernen und ein Modul zum Importieren bereitstellen, um einen DirectionsRenderer oder DirectionsService zu initialisieren?

Wird dieses Projekt das Google-Objekt irgendwann aus dem globalen Namespace entfernen?

Nein, das ist kein Ziel für das Projekt. Es sollte eine einfach zu verwendende Abstraktionsschicht für Angular2 / Google Maps bieten. Wir können darüber nachdenken, wie wir bestimmte Dienste der Google Maps-API wie DirectionsRenderer oder DirectionsService verwenden. Ich habe dies offen gelassen, um zu diskutieren, wie eine gute API für Angular 2 aussehen könnte

Wenn ich hier alles richtig verstehe, wäre es dann nicht die eckigste Art, damit umzugehen, einen Dienst zu haben, der das globale Objekt zurückgibt? Dies würde das Verspotten zum Testen ermöglichen und globale Abhängigkeiten vermeiden.

Hallo @cviccaro, Sie haben erwähnt, dass das google.maps-Objekt funktioniert. Können Sie mir zeigen, wie Sie das gemacht haben? War es über den GoogleMapsAPIWrapper?

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivitäten gab. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen