美文网首页
四章-46-使用KML文件渲染要素

四章-46-使用KML文件渲染要素

作者: 彩云飘过 | 来源:发表于2020-04-07 18:49 被阅读0次

    本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers 5.3.x api。

    源码 见 1046.html ,对应的 官网示例 https://openlayers.org/en/latest/examples/kml.html?q=wkt

    image.png image.png
    <!DOCTYPE html>
    <html>
    
    <head>
       <title>KML</title>
       <link rel="stylesheet" href="../include/ol.css" type="text/css" />
       <script src="../include/ol.js"></script>
    </head>
    <style>
       
    </style>
    
    <body>
       <div id="info">&nbsp;</div>
    
       <div id="map" class="map"></div>
    
       <script>
           var raster = new ol.layer.Tile({
               source: new ol.source.BingMaps({
                   imagerySet: "Aerial",
                   key: "As1HiMj1PvLPlqc_gtM7AqZfBL8ZL3VrjaS3zIb22Uvb9WKhuJObROC-qUpa81U5"
               })
           });
    
           var vector = new ol.layer.Vector({
               source: new ol.source.Vector({
                   url: "../data/2012-02-10.kml",
                   format: new ol.format.KML() // 关键
    
               })
           });
    
           var map = new ol.Map({
               layers: [raster, vector],
               target: "map",
               view: new ol.View({
                   center: [876970.8463461736, 5859807.853963373],
                   projection: "EPSG:3857",
                   zoom: 10
               })
           });
    
           var displayFeatureInfo = function (pixel) {
               var features = [];
               map.forEachFeatureAtPixel(pixel, function (feature) {
                   features.push(feature);
               });
               if (features.length > 0) {
                   var info = [];
                   var i, ii;
                   for (i = 0, ii = features.length; i < ii; ++i) {
                       info.push(features[i].get("name"));
                   }
                   document.getElementById("info").innerHTML =
                       info.join(", ") || "(unknown)";
                   map.getTarget().style.cursor = "pointer";
               } else {
                   document.getElementById("info").innerHTML = "&nbsp;";
                   map.getTarget().style.cursor = "";
               }
           };
    
           map.on("pointermove", function (evt) {
               if (evt.dragging) {
                   return;
               }
               var pixel = map.getEventPixel(evt.originalEvent);
               displayFeatureInfo(pixel);
           });
    
           map.on("click", function (evt) {
               displayFeatureInfo(evt.pixel);
           });
       </script>
    </body>
    
    </html>
    

    相关文章

      网友评论

          本文标题:四章-46-使用KML文件渲染要素

          本文链接:https://www.haomeiwen.com/subject/onokuhtx.html