23 de mayo de 2017

:: Alfresco. Geolocalizar documentos sobre Google Maps

En Alfresco es posible geolocalizar sobre una cartografía de Google Maps aquellos "documentos" (nodos) que tengan información de geolocalización.


Por ejemplo, podríamos ver -sobre un mapa- la geolocalización de un documento correspondiente a una licencia de obra incluido en Alfresco, siempre y cuando este cuente con información de "longitud" y "latitud".

En nuestro caso, todas las licencias de obra disponen de esta meta-información que permite asociarles una ubicación sobre un mapa. De esta manera, cuando consultamos las acciones disponibles sobre este documento, nos aparecerá una nueva entrada denominada: "Ver en Google Maps".
Previamente, sobre la carpeta contenedora, podríamos definir el aspecto "cm:geographic".



Al pulsar sobre esta opción veremos el documento posicionado sobre una cartografía de Google Maps con una vista previa en miniatura del mismo.


En cualquier caso, esta opción no funciona por defecto ya que es necesario contar con la "apikey" de Google Maps. El error javascript mostrado es:

Google Maps API error: MissingKeyMapError https://developers.google.com/maps/documentation/javascript/error-messages#missing-key-map-error _.rb @ maps.google.com/maps/api/js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:38 util.js:220 Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys rB.j @ util.js:220 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:139 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:56 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:53 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:56 _.G @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:55 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:56 _.v @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:35 Yc @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:56 (anonymous) @ js?sensor=false&callback=Alfresco.component.GoogleMap.Callback:139

Para solucionarlo, generamos esta clave desde Google. Más información en el siguiente enlace:
https://developers.google.com/maps/documentation/javascript/get-api-key?hl=ES

Una vez tengamos la apikey generada, modificaremos los siguiente ficheros:
  • [Alfresco]\tomcat\webapps\share\components\geographic\google-map.js
  • [Alfresco]\tomcat\webapps\share\components\geographic\google-map-min.js

En estos ficheros, cuando se hace la petición a Google Maps, añadiremos un parámetro "key=NUESTRA_API_KEY", por lo que quedará de la forma:

script.src = window.location.protocol + "//maps.google.com/maps/api/js?sensor=false&key=NUESTRA_API_KEY&callback=Alfresco.component.GoogleMap.Callback";

No hay comentarios:

Publicar un comentario

Déjanos tu comentario

:: Cookies de nuestra página web. ¿Para qué sirve cada una?

A menudo una pregunta que nos hacen es qué cookies se están utilizando en mi página y para qué sirven. Para ver las cookies, podemos selecci...