Angular-google-maps: etiquetas de marcador

Creado en 11 may. 2016  ·  27Comentarios  ·  Fuente: SebastianM/angular-google-maps

¿Alguna forma de agregar etiquetas a marcadores como este?

image

stale discussion / question feature-request

Comentario más útil

Aquí hay una solución alternativa, de la documentación de la API de Google Maps, la etiqueta puede ser una cadena o una especificación del objeto MarkerLabel, por lo que en lugar de usar una cadena para la etiqueta, especifique el objeto MarkerLabel e introdúzcalo como una variable.
`let markerLabelObject = {
color rojo",
fontFamily: "monospace",
fontSize: "13",
fontWeight: "100",
texto: element.names

     }

    this.markers.push({
      lat: element.latitude,
      label:markerLabelObject,
      lng: element.longitude,`

Todos 27 comentarios

@ssypi Creo que no es posible en este momento con el conjunto de características dado. ¿Puede proporcionar algunos fragmentos de código de esto? Entonces podemos pensar en cómo se puede resolver esto.

¡También estoy investigando esto, además estoy cambiando el ícono del pin!

@SebastianM Todavía no he tenido tiempo suficiente para profundizar en este problema, pero una posibilidad sería usar el marcador con etiqueta de google-maps-utility-library (fuentes y documentos / ejemplos) o esta bifurcación . A simple vista, parece bastante sencillo de usar, aunque necesita una referencia al mapa.

@ brian-singer, el icono de pin se puede cambiar configurando la propiedad iconUrl en la directiva de marcador https://angular-maps.com/docs/api/latest/ts/core/SebmGoogleMapMarker-directive.html

Bien, iconUrl hizo el truco. @alexweber gracias

InfoWindow no se puede diseñar, si necesita una ventana de información personalizada, se debe usar el complemento de infobox de Google Maps.
https://github.com/googlemaps/v3-utility-library/blob/master/infobox/src/infobox.js

Implementación en mi proyecto:

screen shot 2016-07-08 at 18 40 56

Además, para diseñar el marcador y agregar una etiqueta personalizada, se debe utilizar la biblioteca de mapas de Google "markerwithlabel".
https://github.com/googlemaps/v3-utility-library/blob/master/markerwithlabel/src/markerwithlabel.js

screen shot 2016-07-08 at 18 40 10

He implementado esto en angular1 y mapas nativos de Google, pero no sé cómo implementar la misma lógica con angular2 y este complemento. ¿O debería usar googlemaps api directamente como en angular1?

@ ddctd143 Probablemente pueda lograr esto usando un componente / directiva personalizado colocado dentro del mapa o componente de marcador como se menciona aquí: https://github.com/SebastianM/angular2-google-maps/issues/307#issuecomment -229084829

He integrado la solución anterior en un Plunkr para el mapa con estilo:

https://plnkr.co/edit/rv6udUOEedMxJejEpIW1

Pero todavía tengo que pensar en hacer lo mismo con el marcador, ya que también necesito la etiqueta con él. Cuando uso la directiva de marcador de estilo, no sé si puedo obtener la instancia de marcador.

@alexjeen ¿Puedes publicar tu problema en stackoverflow? Hace algunos meses reescribí mi código para trabajar con esta biblioteca y mapas de Google. Respondería tu pregunta.

Estoy tratando de implementar MarkerWithLabel siguiendo la respuesta @ ddctd143 en stackoverflow pero obteniendo un error de Google no definido en markerwithlabel.js. ¿Alguien sabe cómo arreglar esto?

@bibr Deberías importarlo como

@bibr , ¿alguna vez

@ ryan-morris sí, necesito cargar el mapa antes de marker.js, así que en index.html he agregado esto

window.onload = function() {
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.async = true;
        s.src = 'assets/js/marker.js';
        var x = document.getElementsByTagName('script')[0];
        x.parentNode.insertBefore(s, x);
    }

@bibr @ ddctd143 Obteniendo error Zona: angular; Valor: ReferenceError: MarkerWithLabel no está definido cuando estoy usando el nuevo MarkerWithLabel. ¿Alguna idea sobre cómo puedo resolver esto?
`importar {Directiva, OnInit} desde '@ angular / core';
importar {GoogleMapsAPIWrapper} desde 'angular2-google-maps / core';
importar "../scripts/markerwithlabel.js";

declare const Marker WithLabel: cualquiera;

@Directiva({
selector: 'markerlabel-directive'
})

La clase de exportación MarkerLabelDirective implementa OnInit {

private map: any;
constructor(private gmapsApi: GoogleMapsAPIWrapper) {}
ngOnInit() {
this.gmapsApi.getNativeMap().then(map => {
  // instance of the map.
  this.map = map;
  this.initMap();
});

}

initMap () {
var latLng = new google.maps.LatLng (49.47805, -123.84716);
var homeLatLng = new google.maps.LatLng (49.47805, -123.84716);

 var marker1 = new MarkerWithLabel({
   position: homeLatLng,
   draggable: true,
   raiseOnDrag: true,
   map: this.map,
   labelContent: "$425K",
   labelAnchor: new google.maps.Point(22, 0),
   labelStyle: {opacity: 0.75}
 });

 var marker2 = new MarkerWithLabel({
   position: new google.maps.LatLng(49.475, -123.84),
   draggable: true,
   raiseOnDrag: true,
   map: this.map,
   labelContent: "$395K",
   labelAnchor: new google.maps.Point(22, 0),
   labelStyle: {opacity: 1.0}
 });

 var iw1 = new google.maps.InfoWindow({
   content: "Home For Sale"
 });
 var iw2 = new google.maps.InfoWindow({
   content: "Another Home For Sale"
 });
 google.maps.event.addListener(marker1, "click", function (e) { iw1.open(this.map, this); });
 google.maps.event.addListener(marker2, "click", function (e) { iw2.open(this.map, this); });

}
} `

¿alguna actualización?

Aquí hay una solución alternativa, de la documentación de la API de Google Maps, la etiqueta puede ser una cadena o una especificación del objeto MarkerLabel, por lo que en lugar de usar una cadena para la etiqueta, especifique el objeto MarkerLabel e introdúzcalo como una variable.
`let markerLabelObject = {
color rojo",
fontFamily: "monospace",
fontSize: "13",
fontWeight: "100",
texto: element.names

     }

    this.markers.push({
      lat: element.latitude,
      label:markerLabelObject,
      lng: element.longitude,`

Sí, por favor. MarkerWithLabel parece ser el camino a seguir.
https://stackoverflow.com/questions/32467212/google-maps-marker-label-with-multiple-characters

@nelsonBlack ¿

@Ammueliza lo hiciste funcionar?

Solicitud de extracción agregada con esta funcionalidad

1392

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.

Intenté implementar esto ahora y fallé. ¿O me equivoco en algo o esto no es parte de la última versión (1.0.0-beta.5)?
ERROR en: No se puede enlazar a 'markerWithLabel' ya que no es una propiedad conocida de 'agm-marker'.
Por lo que entiendo el código en el PR, necesito establecer esto en 'verdadero'.

Lo intenté con:
Angular 7 (aún no es compatible oficialmente con la última versión)
@ agm / [email protected]
[email protected]

¿Alguien puede decirme cómo hacer que esto funcione, por favor?

@pueaau Estaba tratando de que esto funcionara, pero todas las rutas están bloqueadas https://www.npmjs.com/package/@ajqua/marker -with-label

Creó un nuevo repositorio con las rutas correctas.
https://github.com/braxtondiggs/marker-with-label

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

Temas relacionados

gizm0bill picture gizm0bill  ·  4Comentarios

alexweber picture alexweber  ·  4Comentarios

Subhojit1992 picture Subhojit1992  ·  3Comentarios

ostapch picture ostapch  ·  4Comentarios

maneesht picture maneesht  ·  3Comentarios