Openstreetmap con CakePHP
Openstreetmap con CakePHP
Publicado por Javier Matíes
En muchos de nuestros proyectos usamos googlemaps, ya sea por su facilidad de uso (los de google hacen las cosas muy bien) o por su "estandarización" en muchos CMS o frameworks php con los que trabajamos. El "tema" es que no deja de ser una aplicación cerrada y aunque la API es muy completa, siempre hemos preferido alguna solución más abierta (open source) para poder trabajar con ella.

Y la hemos encontrado en OSM (Open Street Map) un proyecto colaborativo para crear mapas libres y editables que se acerca mucho a la potencia de googlemaps (salvando las distancias claro) y para el cual estamos preparando un "helper" para usar en cakephp en la version 2.x.
De principio hemos dado soporte para poder mostrar los mapas con OpenLayers, CloudMade, y Leftlet.
Su uso es muy sencillo, se descarga el helper y se instala en la app de cakephp, se activa, la mejor forma es desde el AppController y se llama desde cualquier vista de la siguiente forma:
echo $this->OpenLayers->map($default, $style = 'width:100%; height: 100%', $tipo);
Siendo $default un array con los siguientes posibles valores:
- 'typecloud' -> el estilo de mapa
- 'zoom' -> zoom del mapa
- 'lat' => latitud del centro del mapa
- 'long' -> longitud del centro del mapa
Y $tipo tendria estos posibles valores:
- NULL (para usar directamente openlayers)
- cloudmade
- leaflet
Además esta preparado para recibir puntos de interes(POI), vamos, los "markers" de googlemaps:
echo $this->OpenLayers->addmarkers($marca,null,$tipo);
Donde $marca es un array con el punto y con estos valores:
- lat -- latitud del punto
- long -- longitud del punto
- title -- titulo que aparece en la infowindow
$tipo debe ser la misma variable de antes, con el mismo valor.


Añadir nuevo comentario
Si tienes una opinión, sugerencia, crítica o amenaza de muerte sobre lo que escribimos en el blog de geekia, nos encantaría conocerla. Eso sí, te agradeceríamos que intentases cumplir unas normas mínimas.
Ve al grano,así la conversación no se perderá por otros derroteros.Si vas a promocionarte, al menos hazlo con algo de clase.Teclea con los dedos, que no parezca que nos sigue Yoda.Y si es posible, fomenta el buen rollo.
Si todo esto falla, nos reservamos el superpoder de moderarte. Pero preferiríamos no tener que hacerlo.