1. 程式人生 > >openlayer WMS GetFeatureInfo(圖層)

openlayer WMS GetFeatureInfo(圖層)

WMS GetFeatureInfo(圖層)

所有功能: 6
酒店特色: 2
餐廳特色: 4

演示layersol/format/WMSGetFeatureInfoformat物件中使用該選項,該選項允許單個WMS GetFeatureInfo請求返回的功能要求按層名讀取多個圖層。

<!DOCTYPE html><html>

  <head>

    <title>WMS GetFeatureInfo (Layers)</title>

    <link rel="stylesheet" href

="https://openlayers.org/en/v5.1.3/css/ol.css" type="text/css">

    <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->

    <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></

script>

  </head>

  <body>

    <table id="info">

      <tr>

        <td>All features:</td>

        <td id="all"></td>

      </tr>

      <tr>

        <td>Hotel features:</td>

        <td id="hotel"></td>

      </

tr>

      <tr>

        <td>Restaurant features:</td>

        <td id="restaurant"></td>

      </tr>

    </table>

    <script>

      import WMSGetFeatureInfo from 'ol/format/WMSGetFeatureInfo.js';

      fetch('data/wmsgetfeatureinfo/osm-restaurant-hotel.xml').then(function(response) {

        return response.text();

      }).then(function(response) {

        // this is the standard way to read the features

        var allFeatures = new WMSGetFeatureInfo().readFeatures(response);

        document.getElementById('all').innerText = allFeatures.length.toString();

        // when specifying the 'layers' options, only the features of those

        // layers are returned by the format

        var hotelFeatures = new WMSGetFeatureInfo({

          layers: ['hotel']

        }).readFeatures(response);

        document.getElementById('hotel').innerText = hotelFeatures.length.toString();

        var restaurantFeatures = new WMSGetFeatureInfo({

          layers: ['restaurant']

        }).readFeatures(response);

        document.getElementById('restaurant').innerText = restaurantFeatures.length.toString();

      });

    </script>

  </body></html>