Ejemplo sencillo de sincronización de 2 mapas:
- a la izquierda un mapa con OpenLayers 3
- a la derecha, un mapa con la posición de los buques - AIS, a través de un widget de MarineTraffic
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>Marine Traffic en OL3</title> | |
| <link type="text/css" href="http://openlayers.org/en/v3.12.1/css/ol.css" rel="stylesheet" /> | |
| <style> | |
| #mapa { | |
| width: 50%; | |
| height: 600px; | |
| } | |
| #panel { | |
| width: 50%; | |
| height: 600px; | |
| position: fixed; | |
| right: 0px; | |
| top: 0px; | |
| } | |
| </style> | |
| </head> | |
| <body onload="init()"> | |
| <div id="mapa"></div> | |
| <div id="panel"> | |
| <iframe id="marineTraffic" frameborder="0" scrolling="no" width="100%" height="100%" src="http://www.marinetraffic.com/es/ais/embed/"> | |
| </iframe> | |
| </div> | |
| <script src="http://openlayers.org/en/v3.12.1/build/ol-debug.js"></script> | |
| <script type="text/javascript"> | |
| var mapa; | |
| function init() { | |
| var osm = new ol.layer.Tile({ | |
| source: new ol.source.OSM() | |
| }); | |
| var lon = -3.7930298; | |
| var lat = 43.44045603; | |
| var zoom = 12; | |
| var vista = new ol.View({ | |
| center: ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857'), | |
| zoom: 12 | |
| }); | |
| mapa = new ol.Map({ | |
| layers: [osm], | |
| target: 'mapa', | |
| view: vista | |
| }); | |
| centrarMapaAIS(lon, lat, zoom); | |
| vista.on('change:center', actualizar); | |
| vista.on('change:resolution', actualizar); | |
| } | |
| function actualizar(evt) { | |
| var centro = evt.target.getCenter(); | |
| var lonlat = ol.proj.transform(centro, 'EPSG:3857', 'EPSG:4326'); | |
| var lon = lonlat[0]; | |
| var lat = lonlat[1]; | |
| var zoom = evt.target.getZoom(); | |
| centrarMapaAIS(lon, lat, zoom); | |
| } | |
| function centrarMapaAIS(lon, lat, zoom) { | |
| var url = 'http://www.marinetraffic.com/es/ais/embed/'; | |
| url += "zoom:" + zoom + "/centery:" + lat + "/centerx:" + lon; | |
| url += "/maptype:3/shownames:true/mmsi:0/shipid:0/fleet:/fleet_id:/vtypes:/showmenu:true/remember:false"; | |
| //console.log(url); | |
| var iframe = document.getElementById('marineTraffic'); | |
| iframe.src = url; | |
| } | |
| </script> | |
| </body> | |
| </html> |