OpenLayers GIS selection test

OpenLayers GIS selection test

by denis_miroshnikov_ts

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Слои в OpenLayers 3</title>
    <link rel="stylesheet" href="ol.css">
    <script src="ol.js"></script>
</head>
<body>
    <div id="map" style="width: 80%; height: 400px; float: right;"></div>
    <div id="layers" style="width: 20%; height: 400px;"></div>
    <script>
        var map = new ol.Map({
          target: 'map'
        });

        var osmLayer = new ol.layer.Tile({
            source: new ol.source.OSM()
        });
        osmLayer.name = 'OpenStreetMap';
        map.addLayer(osmLayer);
        
        var currentLayer = osmLayer;

        var bingLabelledAerials = new ol.layer.Tile({
            visible: false,
            source: new ol.source.BingMaps({
                key: 'AkPePzQAUoC7qKlVTNT4nw0Ykq2EJ4nLE9Iq8-7NZY4wI2Owxebqqur_4zMiboZh',
                imagerySet: "AerialWithLabels",
                maxZoom: 19
            })
        });
        bingLabelledAerials.name = 'Bing Космос';
        map.addLayer(bingLabelledAerials);
        
        var bingRoad = new ol.layer.Tile({
            visible: false,
            source: new ol.source.BingMaps({
                key: 'AkPePzQAUoC7qKlVTNT4nw0Ykq2EJ4nLE9Iq8-7NZY4wI2Owxebqqur_4zMiboZh',
                imagerySet: "Road",
                maxZoom: 19
            })
        });
        bingRoad.name = 'Bing Карта';
        map.addLayer(bingRoad);
        
        var mapQuestOsm = new ol.layer.Tile({
            visible: false,
            source: new ol.source.MapQuest({layer: 'osm'})
        });
        mapQuestOsm.name = 'MapQuest карта';
        map.addLayer(mapQuestOsm);
        
        var mapQuestHybrid = new ol.layer.Group({
            visible: false,
            layers: [
                new ol.layer.Tile({
                    source: new ol.source.MapQuest({layer: 'sat'})
                }),
                new ol.layer.Tile({
                    source: new ol.source.MapQuest({layer: 'hyb'})
           ...

CSS

.ol-control,.ol-scale-line{position:absolute;padding:2px}.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width}.ol-overlay-container{will-change:left,right,top,bottom}.ol-unsupported{display:none}.ol-viewport .ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-control{background-color:rgba(255,255,255,.4);border-radius:4px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}@media print{.ol-control{display:none}}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0...