Angular-google-maps: Acceso al objeto completo de google.maps

Creado en 10 mar. 2016  ·  8Comentarios  ·  Fuente: SebastianM/angular-google-maps

Hola, me encanta su trabajo hasta ahora, pero tengo curiosidad, ¿esta biblioteca alguna vez otorgará acceso al objeto completo google.maps, similar a la implementación de angular1 de google-maps? (ver aquí: http://angular-ui.github.io/angular-google-maps/#!/api/GoogleMapApi)

Obtener el objeto google.maps le permite crear, por ejemplo ...

Código A1 para crear nuevos DirectionsRenderer y DirectionsService:

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

O para crear un nuevo objeto LatLng:

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

¿Será posible con esta biblioteca?

EDITAR: Veo que el objeto de Google está disponible globalmente ... así que podemos hacer var latlng = new google.maps.LatLng (lat, lng); Sin embargo, ¿no es uno de los objetivos del proyecto evitar que el objeto de Google contamine el espacio de nombres global?

EDITAR para EDITAR: Vea también que ahora podemos usar la interfaz LatLngLiteral, por lo que se trata de un problema:

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

...

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

Comentario más útil

Si entiendo todo aquí correctamente, ¿no sería la forma más angular de manejar esto tener un servicio que devuelva el objeto global? Esto permitiría la burla para las pruebas y evitaría dependencias globales.

Todos 8 comentarios

Hola cviccaro,

Consulte el comentario mencionado a continuación para obtener acceso al objeto google.maps.

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

@ parmod-arora,

Gracias. Me las arreglé para obtener el objeto del mapa, pero me refería a la API de todo el SDK. DirectionsRenderer y DirectionsService no se encuentran en el objeto de mapa en sí, sino en el espacio de nombres google.maps.

Sin embargo, al repensar esto, imagino que el acceso directo al espacio de nombres completo de google.maps no estará disponible por diseño, sino que los envoltorios alrededor de cada uno estarán disponibles más adelante.

@cviccaro ,

Corrígeme si me equivoco, quieres acceder a google.maps y quieres jugar con los servicios de DirectionsRenderer y DirectionsService.

A continuación se muestra el código.

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 Exactamente. Como escribí en mi edición de la publicación original, veo que el objeto global de Google está disponible, por lo que mi pregunta se ha desviado un poco, supongo. ¿Este proyecto eventualmente eliminará el objeto de Google del espacio de nombres global, proporcionando un módulo para importar para inicializar un DirectionsRenderer o DirectionsService?

¿Este proyecto eventualmente eliminará el objeto de Google del espacio de nombres global?

No, este no es un objetivo del proyecto. Debe proporcionar una capa de abstracción fácil de usar para los mapas de angular2 / google. Podemos pensar en cómo usamos ciertos servicios de la API de Google Maps como DirectionsRenderer o DirectionsService. Dejo esto abierto para discutir cómo podría verse una buena API para Angular 2

Si entiendo todo aquí correctamente, ¿no sería la forma más angular de manejar esto tener un servicio que devuelva el objeto global? Esto permitiría la burla para las pruebas y evitaría dependencias globales.

Hola @cviccaro , mencionaste que tienes el objeto google.maps funcionando, ¿podrías mostrarme cómo lo hiciste? ¿Fue a través de GoogleMapsAPIWrapper?

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

¿Fue útil esta página
0 / 5 - 0 calificaciones