Openstreetmap: incrustar mapa en la página web (como Google Maps)


¿Hay alguna forma de incrustar/mashup el OpenStreetMap en tu página (como la forma en que funciona la API de Google Maps)?

Necesito mostrar un mapa dentro de mi página con algunos marcadores y permitir arrastrar/hacer zoom, tal vez enrutar. Sospecho que habría alguna API de Javascript para esto, pero parece que no puedo encontrarla.

La búsqueda me da una API para acceder a datos de mapas sin procesar, pero eso parece ser más para editar mapas; además, trabajar con eso sería una tarea pesada para AJAX.

Author: guerda, 2009-05-29

7 answers

Necesitas usar algunas cosas de JavaScript para mostrar tu mapa. OpenLayers es la opción número uno para esto.

Hay un ejemplo en http://wiki.openstreetmap.org/wiki/OpenLayers_Simple_Example y algo más avanzado en

Http://wiki.openstreetmap.org/wiki/OpenLayers_Marker

Y

Http://wiki.openstreetmap.org/wiki/Openlayers_POI_layer_example

 47
Author: lhahne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-05 12:00:08

Ahora también hay Leaflet, que está construido con dispositivos móviles en mente.

Existe una Guía de inicio rápido para el prospecto. Además de características básicas como marcadores, con plugins también soporta enrutamiento usando un servicio externo.

Para un mapa simple, es más fácil y rápido de configurar que OpenLayers, pero totalmente configurable y modificable para usos más complejos.

 20
Author: Piskvor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-13 20:53:25

También echaría un vistazo a Las herramientas para desarrolladores de CloudMade. Ofrecen un servicio de mapas base de OSM bellamente diseñado, un complemento de OpenLayers e incluso su propio cliente de mapas JavaScript liviano y muy rápido. También alojan su propio servicio de enrutamiento, que usted mencionó como un posible requisito. Tienen gran documentación y ejemplos.

 5
Author: atogle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-10 14:02:48

Echa un vistazo a mapstraction. Esto puede darle más flexibilidad para proporcionar mapas basados en Google, osm, yahoo, etc. sin embargo, su código no tendrá que cambiar.

 5
Author: Alan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-06 06:30:35

Simple Folleto Ejemplo

Especificaciones

  • Utiliza OpenStreetMaps.
  • Centra el mapa en el GPS objetivo.
  • Coloca un marcador en el GPS objetivo.

Código

// Where you want to render the map.
var element = document.getElementById('osm-map');

// Height has to be set. You can do this in CSS too.
element.style = 'height:300px;';

// Create Leaflet map on map element.
var map = L.map(element);

// Add OSM tile leayer to the Leaflet map.
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

// Target's GPS coordinates.
var target = L.latLng('47.50737', '19.04611');

// Set map's center to target with zoom 14.
map.setView(target, 14);

// Place a marker on the same location.
L.marker(target).addTo(map);
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<link href="https://unpkg.com/[email protected]/dist/leaflet.css" rel="stylesheet"/>
<div id="osm-map"></div>

Nota:

Usé la versión CDN de Leafletaquí, pero puedes descargar los archivos para que puedas servirlos e incluirlos desde tu propio host.

 4
Author: totymedli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-19 23:25:10

Puede usar OpenLayers (API js para mapas).

Hay un ejemplo en su página que muestra cómo incrustar mosaicos de OSM.

 3
Author: diciu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-29 09:30:29

Hay una forma sencilla de hacerlo si le temes a Javascript...Todavía estoy aprendiendo. Open Street hace un simple plugin de Wordpress que puedes personalizar. Añadir complemento de widget de OSM.

Esto será un relleno hasta que averigüe mi concotion Python Java usando los archivos de línea coverter TIGER de la Oficina del Censo.

 1
Author: David Spahn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-09 16:21:14