使用天地图实现行政区域划分实现方式有两种:

  1. 使用国家天地图提供的SDK
  2. Openlayers
  3. Leaflet
    实现效果:

利用国家天地图实现区域划分

首先需要注册成为开发者获取所需的开发秘钥才可进行开发。
官网地址:国家天地图用户注册
注册成功后获得开发者keys即可进行对应的开发。

接下来是获取你所需行政区划的坐标点才可进行划分。在没有获取数据的楼主是采用一下方式:
在开发案例中,通过搜索所需的行政区域,在页面返还的json字符串中有该行政区划的坐标点以及它的相关信息。(该功能只支持到区级的行政区划。)

<script>var map;var zoom = 10;//地图初始化function onLoad() {map = new T.Map('mapDiv', {projection: 'EPSG:4326'});map.centerAndZoom(new T.LngLat(120.137243,30.8779251), zoom);//定义区域划分的json数据数组var huzhouArea = [deqingarea,anjiarea,wuxingarea,nanxunarea,changxingarea];//随机给区块的热力值 根据热力值显示不同的颜色var huzhouNumber = [95,20,50,70,40];
for (var i = 0,sdLen = huzhouArea.length; i < sdLen; i++) {//调用方法画出相应地区热力图 drawArea(huzhouArea[i],huzhouNumber[i]/150);
};}//根据提供的数据设置线和面的样式 在地图中添加json数据的坐标点function drawArea(json,opacity){var area = json.area;   var points = area.points;   //如果有区域坐标信息,画出此行政区的多边形。   if(points && points.length != 0){   //面的线的样式var style = {color: "purple",weight: 1.5,opacity: 1, strokeStyle : "dashed", //虚线   fillColor : "red",                         fillOpacity : opacity //透明度                      };for(var i = 0;i < points.length;i++){var region = points[i].region;//单个面   var pointArr = region.split(",");   var pointsz = [];   for(var j = 0;j < pointArr.length - 1;j++){   var p = pointArr[j];   var pArr = p.split(" ");   var point = new T.LngLat(pArr[0],pArr[1]);   pointsz.push(point);                   }   var poly = new T.Polygon(pointsz,style);  map.addOverLay(poly);   }   }
}

使用Openlayers

当然行政区划和热力图也可以通过Leaflet和Openlayers的SDK来实现。两种都大同小异,以下用Openlayers为例。

var projection = ol.proj.get("EPSG:4326");var projectionExtent = projection.getExtent();var res = [1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.001373291015625,0.0006866455078125,0.00034332275390625,0.000171661376953125,0.0000858306884765625,0.00004291534423828125,0.000021457672119140625,0.000010728836059570312,0.000005364418029785156,0.000002682209014892578,0.000001341104507446289];var view = new ol.View({center: [120.257243,30.8399251],projection: projection,zoom: 11,maxZoom: 20,minZoom: 1});var map = new ol.Map({layers: [new ol.layer.Tile({source: new ol.source.WMTS({name: "中国矢量1-4级",url: "http://t{0-6}.tianditu.com/vec_c/wmts?tk=85b88ce10c15f390ee75bf571688b3b7",layer: "vec",style: "default",matrixSet: "c",format: "tiles",wrapX: true,tileGrid: new ol.tilegrid.WMTS({origin: ol.extent.getTopLeft(projectionExtent),resolutions: res.slice(0, 15),matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]})}),minResolution: 0.00004291534423828125,maxResolution: 1.40625}),new ol.layer.Tile({source: new ol.source.WMTS({name: "中国矢量注记1-4级",url: "http://t{0-6}.tianditu.com/cva_c/wmts?tk=85b88ce10c15f390ee75bf571688b3b7",layer: "cva",style: "default",matrixSet: "c",format: "tiles",wrapX: true,tileGrid: new ol.tilegrid.WMTS({origin: ol.extent.getTopLeft(projectionExtent),resolutions: res.slice(0, 15),matrixIds: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]})}),minResolution: 0.00004291534423828125,maxResolution: 1.40625}),new ol.layer.Tile({source: new ol.source.WMTS({name: "浙江矢量7-20级",url: "http://srv{0-6}.zjditu.cn/ZJEMAP_2D/wmts",layer: "TDT_ZJEMAP",style: "default",matrixSet: "TileMatrixSet0",format: "image/png",wrapX: true,tileGrid: new ol.tilegrid.WMTS({origin: ol.extent.getTopLeft(projectionExtent),resolutions: res.slice(7, 21),matrixIds: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]})}),minResolution: 0.000001341104507446289,maxResolution: 0.02197265625}),new ol.layer.Tile({source: new ol.source.WMTS({name: "浙江矢量注记7-20级",url: "http://srv{0-6}.zjditu.cn/ZJEMAPANNO_2D/wmts",layer: "ZJEMAPANNO",style: "default",matrixSet: "TileMatrixSet0",format: "image/png",wrapX: true,tileGrid: new ol.tilegrid.WMTS({origin: ol.extent.getTopLeft(projectionExtent),resolutions: res.slice(7, 21),matrixIds: [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]})}),minResolution: 0.000001341104507446289,maxResolution: 0.02197265625})],target: "map",view:view});//矢量样式var createStyle = function (feature){return new ol.style.Style({stroke: new ol.style.Stroke({width:0.7,color:'purple',}),fill: new ol.style.Fill({color:'rgba(186,85,211,0.01)'})});}
//定义json数据数组
var communityData = [area1,area2,area3,area4];
//根据数据格式遍历出坐标点var features = communityData[0].features;for(i=0;i<=features.length;i++){features.map(item=>{console.log('item',item.geometry.coordinates);});features.map(item => {let opt = item.geometry.coordinates;//矢量要素var feature =new  ol.Feature({geometry:new ol.geom.Polygon(opt)});feature.setStyle(createStyle(feature));//矢量要素数据源var source = new ol.source.Vector();source.addFeature(feature);var vectorPolygons = new ol.layer.Vector({source: source});//坐标点添加到地图上map.addLayer(vectorPolygons);});}

基于天地图热力图及区域划分相关推荐

  1. 肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法

    由于能力有限,算法层面的东西自己去创新的很少,很多都是从现有的论文中学习,然后实践的. 本文涉及的很多算法,在网络上也有不少同类型的文章,但是肯定的一点就是,很多都是不配代码的,或者所附带的代码都是象 ...

  2. 肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法

    基于RGB颜色空间的简单阈值肤色识别 在human skin color clustering for face detection一文中提出如下简单的判别算式: R>95 And G>4 ...

  3. Android 颜色渲染(二) 颜色区域划分原理与实现思路

    在前面的系列我已经将Android中颜色渲染的原理及使用做了一个整体上概述. 现在开始根据一个比较复杂的实现进行具体的分析,这就是PhotoShop中的调色板应用 首先还是看一下最终的实现效果:    ...

  4. java运行时异常与一般异常有何异同_JVM | 虚拟机运行时数据区域划分和使用详解...

    引言   我们经常会被问到一个问题是Java和C++有何区别?我们除了能回答一个是面向对象.一个是面向过程编程以外,我们还会从底层内存管理和垃圾收集方面作出比较.   对于C++而言,程序员既要做程序 ...

  5. Java必突-JVM知识专题(一): Java代码是如何跑起来的+类加载到使用的过程+类从加载到使用核心阶段(类初始化)+类加载的层级结构+什么是JVM的内存区域划分?Java虚拟机栈、Java堆内存

    前言: 该章节知识点梳理:本文主要是入门和了解jvm,不做深入 1.Java代码是如何运行起来的? 2.类加载到使用的过程? 3.验证准备和初始化的过程? 4.类从加载到使用核心阶段:初始化.类加载器 ...

  6. 利用百度地图进行城市功能区域划分

    记录: 使用百度地图api进行各类兴趣点的划分 将研究区域利用arcgismap进行网格的划分和渔网经纬度范围的导出 将网格的范围与兴趣点坐标进行匹配与计算. 利用所获得的区域的兴趣点的频率进行方格区 ...

  7. 热力图原始文本数据处理_梁家俊:基于百度热力图数据的中山市中心城区空间结构分析...

    基于百度热力图数据的 中山市中心城区空间结构分析 大家好,我叫梁家俊,是来自中山市规划设计院的"规划师新丁".经过一年多的规划工作,真切地感受到了如今传统规划所面临的困境.&quo ...

  8. 基于电子健康档案的区域医疗 SOA 解决方案

    区域医疗 SOA 解决方案,第 1 部分: 基于电子健康档案的区域医疗 SOA 解决方案 尹 瑞, 高级软件工程师, IBM 闫 哲, 软件工程师, IBM 梁 海奇, 咨询顾问, WSO2 Inc ...

  9. 热力图原始文本数据处理_观点丨基于百度热力图的街道活力时空分布特征分析——以江西省南昌市历史城区为例...

    摘自: 闵忠荣,丁帆.基于百度热力图的街道活力时空分布特征分析--以江西省南昌市历史城区为例[J].城市发展研究,2020,27(02):31-36. 如需查看全文,请点击文末"阅读原文&q ...

  10. 20.三层技术之OSPF区域划分与路由重分发(2)

    OSPF引入了区域划分的技术,OSPF可以将整个AS分割成多个小区域.Area0默认为骨干区域,其他为标准区域. OSPF区域中将路由器分为内部路由器(IR),区域间路由器(ABR),自治系统边界路由 ...

最新文章

  1. MongoDB 学习笔记四 C#调用MongoDB
  2. volatile和synchronized的区别
  3. UEStudio使用技巧三则
  4. 科大星云诗社动态20210524
  5. JAVA复习5(TreeSet)
  6. thymeleaf中的内联[ [ ] ]
  7. eplan加密狗已损坏_EPLAN Electric P8 仿真加密狗 error 1068 问题
  8. LOJ P3960 列队 树状数组 vector
  9. 基于网络电子海图的海洋气象信息服务系统
  10. 运维基础知识总结(环境搭建篇)
  11. Linux:网络测试工具之 iperf3
  12. 最全的测试计划模板参考
  13. 在线展示pdf和word并且不能显示下载和打印按钮
  14. 项目docker容器化部署步骤
  15. 厦门大学854结构力学(含结构动力学)考研参考书目
  16. 交互组件滚动条,搜索框,上传组件,翻页的微创新
  17. 敏捷测试 之 借力DSL
  18. grep命令 |grep
  19. color-scheme 属性根据操作系统配色方案调整页面样式
  20. 《JavaScript高级程序设计》读书笔记 -12.1 window对象

热门文章

  1. わたしたちの田村くん
  2. c++ primer plus学习笔记(7)——类继承
  3. python3识别图中的文字_Python3调用百度AI识别图片中的文字功能示例【测试可用】...
  4. 一网打尽!炫酷枪火打击视频+图文+源码!哔哔哔......
  5. 2020年高效搬砖必备的IDEA插件(附安装包)
  6. 视频I帧、P帧、B帧总结
  7. 如何面对软件工程师考试?
  8. 合约战事风云 |链捕手
  9. kaptcha生成自定义图片验证码
  10. MySQL——MySQL高可用之 MMM多主复制管理器