UNPKG

openlayers

Version:

Build tools and sources for developing OpenLayers based mapping applications

75 lines (65 loc) 1.64 kB
goog.require('ol.Map'); goog.require('ol.View'); goog.require('ol.interaction.Draw'); goog.require('ol.interaction.Modify'); goog.require('ol.interaction.Snap'); goog.require('ol.layer.Tile'); goog.require('ol.layer.Vector'); goog.require('ol.source.OSM'); goog.require('ol.source.Vector'); goog.require('ol.style.Circle'); goog.require('ol.style.Fill'); goog.require('ol.style.Stroke'); goog.require('ol.style.Style'); var raster = new ol.layer.Tile({ source: new ol.source.OSM() }); var source = new ol.source.Vector(); var vector = new ol.layer.Vector({ source: source, style: new ol.style.Style({ fill: new ol.style.Fill({ color: 'rgba(255, 255, 255, 0.2)' }), stroke: new ol.style.Stroke({ color: '#ffcc33', width: 2 }), image: new ol.style.Circle({ radius: 7, fill: new ol.style.Fill({ color: '#ffcc33' }) }) }) }); var map = new ol.Map({ layers: [raster, vector], target: 'map', view: new ol.View({ center: [-11000000, 4600000], zoom: 4 }) }); var modify = new ol.interaction.Modify({source: source}); map.addInteraction(modify); var draw, snap; // global so we can remove them later var typeSelect = document.getElementById('type'); function addInteractions() { draw = new ol.interaction.Draw({ source: source, type: typeSelect.value }); map.addInteraction(draw); snap = new ol.interaction.Snap({source: source}); map.addInteraction(snap); } /** * Handle change event. */ typeSelect.onchange = function() { map.removeInteraction(draw); map.removeInteraction(snap); addInteractions(); }; addInteractions();