diff --git a/examples/google-map.html b/examples/google-map.html index c5c3942437..fd82495071 100644 --- a/examples/google-map.html +++ b/examples/google-map.html @@ -13,6 +13,10 @@ div.ol-logo { left: 65px; } + div.fill { + width: 100%; + height: 100%; + } Google Maps integration example @@ -31,7 +35,10 @@
-
+
+
+
+
diff --git a/examples/google-map.js b/examples/google-map.js index f6dd0a6994..2d5d2b1dc5 100644 --- a/examples/google-map.js +++ b/examples/google-map.js @@ -12,9 +12,7 @@ goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); -var gmap = new google.maps.Map(document.getElementById('map'), { - center: new google.maps.LatLng(0, 0), - zoom: 1, +var gmap = new google.maps.Map(document.getElementById('gmap'), { disableDefaultUI: true, keyboardShortcuts: false, draggable: false, @@ -23,52 +21,45 @@ var gmap = new google.maps.Map(document.getElementById('map'), { streetViewControl: false }); -var olmap = document.createElement('div'); -olmap.style['width'] = '100%'; -olmap.style['height'] = '100%'; -gmap.controls[google.maps.ControlPosition.TOP_LEFT].push(olmap); - -google.maps.event.addListenerOnce(gmap, 'tilesloaded', function() { - var vector = new ol.layer.Vector({ - source: new ol.source.GeoJSON({ - url: 'data/geojson/countries.geojson', - projection: 'EPSG:3857' - }), - style: new ol.style.Style({ - fill: new ol.style.Fill({ - color: 'rgba(255, 255, 255, 0.6)' - }), - stroke: new ol.style.Stroke({ - color: '#319FD3', - width: 1 - }) - }) - }); - - var center = gmap.getCenter(); - var map = new ol.Map({ - layers: [vector], - interactions: ol.interaction.defaults({ - altShiftDragRotate: false, - dragPan: false, - touchRotate: false - }).extend([new ol.interaction.DragPan({kinetic: false})]), - renderer: 'canvas', - target: olmap, - view: new ol.View2D({ - center: ol.proj.transform([center.lng(), center.lat()], - 'EPSG:4326', 'EPSG:3857'), - zoom: gmap.getZoom() - }) - }); - - var view = map.getView().getView2D(); - view.on('change:center', function() { - var center = ol.proj.transform(view.getCenter(), - 'EPSG:3857', 'EPSG:4326'); - gmap.setCenter(new google.maps.LatLng(center[1], center[0])); - }); - view.on('change:resolution', function() { - gmap.setZoom(view.getZoom()); - }); +var view = new ol.View2D(); +view.on('change:center', function() { + var center = ol.proj.transform(view.getCenter(), 'EPSG:3857', 'EPSG:4326'); + gmap.setCenter(new google.maps.LatLng(center[1], center[0])); }); +view.on('change:resolution', function() { + gmap.setZoom(view.getZoom()); +}); + +var vector = new ol.layer.Vector({ + source: new ol.source.GeoJSON({ + url: 'data/geojson/countries.geojson', + projection: 'EPSG:3857' + }), + style: new ol.style.Style({ + fill: new ol.style.Fill({ + color: 'rgba(255, 255, 255, 0.6)' + }), + stroke: new ol.style.Stroke({ + color: '#319FD3', + width: 1 + }) + }) +}); + +var olMapDiv = document.getElementById('olmap'); +var map = new ol.Map({ + layers: [vector], + interactions: ol.interaction.defaults({ + altShiftDragRotate: false, + dragPan: false, + touchRotate: false + }).extend([new ol.interaction.DragPan({kinetic: false})]), + renderer: 'canvas', + target: olMapDiv, + view: view +}); +view.setCenter([0, 0]); +view.setZoom(1); + +olMapDiv.parentNode.removeChild(olMapDiv); +gmap.controls[google.maps.ControlPosition.TOP_LEFT].push(olMapDiv);