web前端利用turf.js生成等值线、等值面

样例如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>等值线的生成</title>
    <link href="Script/leaflet/leaflet.css" rel="stylesheet" />
    <style>
        #map
        {
            height: 2000px;
            width: 1500px;
        }
    </style>
    <script src="Script/leaflet/leaflet.js"></script>
    <script src="Script/leaflet/leaflet.ChineseTmsProviders.js"></script>
    <script src=‘https://npmcdn.com/@turf/turf/turf.min.js‘></script>
</head>
<body>
    <div id="map"></div>

</body>
    <script>
        var normalm = L.tileLayer.chinaProvider(‘TianDiTu.Normal.Map‘, {
            maxZoom: 18,
            minZoom: 1
        }),
            normala = L.tileLayer.chinaProvider(‘TianDiTu.Normal.Annotion‘, {
                maxZoom: 18,
                minZoom: 1
            }),
            imgm = L.tileLayer.chinaProvider(‘TianDiTu.Satellite.Map‘, {
                maxZoom: 18,
                minZoom: 1
            }),
            imga = L.tileLayer.chinaProvider(‘TianDiTu.Satellite.Annotion‘, {
                maxZoom: 18,
                minZoom: 1
            });

        var normal = L.layerGroup([normalm, normala]);
        image = L.layerGroup([imgm, imga]);

        var baseLayers = {
            "地图": normal,
            "影像": image,
        }

        var overlayLayers = {
            "图": normal,
            "像": image,
        }

        var map = L.map("map", {
            center: [31.59, 120.29],
            zoom: 12,
            layers: [normal],
            zoomControl: false

        });
        // 创建等值线区域
        var extent = [0, 30, 20, 50];
        var cellWidth = 100;
        var pointGrid = turf.pointGrid(extent, cellWidth, { units: ‘miles‘ });

        for (var i = 0; i < pointGrid.features.length; i++) {
            pointGrid.features[i].properties.temperature = Math.random() * 10;
        }
        console.log(pointGrid.features.length);
        //等值线的级数
        var breaks = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

        var lines = turf.isolines(pointGrid, breaks, { zProperty: ‘temperature‘ });
        //设置颜色
        var myStyle = {
            "color": "#ff7800",
            "weight": 5,
            "opacity": 0.65
        };
        //进行平滑处理
            var _lFeatures = lines.features;
            for(var i=0;i<_lFeatures.length;i++){
                var _coords = _lFeatures[i].geometry.coordinates;
                var _lCoords = [];
                for(var j=0;j<_coords.length;j++){
                    var _coord = _coords[j];
                    var line = turf.lineString(_coord);
                    var curved = turf.bezierSpline(line);
                    _lCoords.push(curved.geometry.coordinates);
                }
                _lFeatures[i].geometry.coordinates = _lCoords;
            }
        //geojson数据读取
        L.geoJSON(lines, {
            style: myStyle
        }).addTo(map);
    </script>
</html>

原文地址:https://blog.csdn.net/weixin_40184249/article/details/81198282

另外一个文章地址:http://www.cnblogs.com/naaoveGIS/p/6142226.html

原文地址:https://www.cnblogs.com/tiandi/p/10124712.html

时间: 2024-11-03 15:31:20

web前端利用turf.js生成等值线、等值面的相关文章

web前端利用vue.js实现品牌列表的添加,删除与筛选功能

实现效果图: 实现功能:web前端利用vue.js实现品牌列表的添加,删除与筛选功能 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &l

好程序员web前端教程分享js中的模块化一

好程序员web前端教程分享js中的模块化一:我们知道最常见的模块化方案有CommonJS.AMD.CMD.ES6,AMD规范一般用于浏览器,异步的,因为模块加载是异步的,js解释是同步的,所以有时候导致依赖还没加载完毕,同步的代码运行结束:CommonJS规范一般用于服务端,同步的,因为在服务器端所有文件都存储在本地的硬盘上,传输速率快而且稳定. 1.script标签引入 最开始的时候,多个script标签引入js文件.但是,这种弊端也很明显,很多个js文件合并起来,也是相当于一个script,

web前端利用HSTS(新的Web安全协议HTTP Strict Transport Security)漏洞的超级Cookie(HSTS Super Cookie)

web前端如果想实现cookie跨站点,跨浏览器,清除浏览器cookie该cookie也不会被删除这似乎有点难,下面的教程让你完全摆脱document.cookie superCookie.js:http://beta.tfxiq.com/superCookie.js demo: http://beta.tfxiq.com/sc.html 服务器端设置HSTS 如PHP: <?php header("Strict-Transport-Security: max-age=31536000;

web前端利用leaflet生成粒子风场,类似windy

wind.js如下: $(function() { var dixing = L.tileLayer.chinaProvider('Google.Satellite.Map', { maxZoom: 18, minZoom: 2 }); var map = L.map("map", { center: [33.5, 114.6], zoom: 10, maxZoom: 20, minZoom: 3, layers: dixing, zoomControl: false, attribu

WEB前端优化CSS,JS,图片

做网站优化的运维都知道,为了提高网站的访问速度,一般会开启Apache/Nginx gzip功能,将文件压缩,但是这个压缩与我要说的压缩不在一个层面.网上也提供一些在线css.js文件压缩功能.今天介绍一款linux工具来实现这个功能安装JAVA YUI Compressor由java开发,所有我们必须先有java环境.一般系统都会自带java,如果没带,那么 yum安装一个openjava # yum install java 确认是否安装成功 [[email protected] vhost

web前端利用jq实现折叠菜单

实现效果图:  功能:点击某一个一级菜单时,相应的二级菜单会下拉出现 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title&

web前端学习笔记------JS面向对象初级

基本概念 对象:对象就是一个整体,对外提供一个整体. 面向对象:使用对象时,只关注对象提供的功能,不关注其内部的细节. 三个特点(类C++):封装.继承.多态 一些概念区别 1.方法与函数 方法:obj.fn = function(){} 函数:function fn(){} 其中函数 function fn(){} 相当于 window.fn = function(){} 2.类与对象 类:不具备实际的功能,只能用来构造对象 对象:真正有功能的东西,被类给构造出来的 构造函数(工厂方式) 以p

Web前端编程入门--js时间转换

时间戳格式转换 function jsonDateFormat(jsonDate) { //json日期格式转换为正常格式 var jsonDateStr = jsonDate.toString();//此处用到toString()是为了让传入的值为字符串类型,目的是为了避免传入的数据类型不支持.replace()方法 try { var k = parseInt(jsonDateStr.replace("/Date(", "").replace(")/&

《基于Vue.js的Web前端应用研究》文献阅读(十五)

一.基本信息 标题:基于Vue.js的Web前端应用研究 时间:2017 来源:科技与创新 关键词:Web前端:Vue.js:JavaScript组件:Vue框架 二.研究内容 1.主要内容: 随着互联网的迅猛发展,用户对Web前端的使用体验.交互操作流程.外观有了更高的要求.特别是Web系统中越来越多的数据处理和业务逻辑开始偏向前端,导致Web前端工作量扩大,代码量增加.如果仍然采用传统的方式开发设计Web前端,会导致前期开发度和后期维护难度增大,可扩展性变差.为了提高开发效率和代码复用率,越