[LBS学习笔记 1]高德数据可视化初体验

简介: 换了新工作,虽然还是java开发,但是之前搞做在线教育的,现在做地图相关的事。因此,花了些时间学了空间索引相关的内容,后期会写关于空间索引相关的内容,这期写地理数据可视化相关的内容。

高德数据可视化初体验

背景

换了新工作,虽然还是java开发,但是之前搞做在线教育的,现在做地图相关的事。因此,花了些时间学了空间索引相关的内容,后期会写关于空间索引相关的内容,这期写地理数据可视化相关的内容。

准备

1.高德开发平台账号

高德开放平台:https://lbs.amap.com/

申请账号并在应用管理创建需要的key,如图

1_1.png

2.学习高德JS API文档

这里我主要关注多边形的展示,所以贴一下矢量图形的链接,有需要的可自行看其他内容
https://lbs.amap.com/api/jsapi-v2/guide/overlays/vector-overlay

然后,楼主又花了点时间在B站上学了JS基本语法相关的内容,然后就可以动手做了

开发

后端接口

接口主要提供国内的行政区划数据,即省市区的编码和多边形围栏数据,在网上google找了一个可以用的数据https://github.com/Civitasv/DataV_GeoJSON,将区级别的json数据解析出来,导入数据库里,这样我们就有了基础数据。

然后提供一个接口,可以返回多边形边界数据

    @GetMapping("/queryByAdcode")
    @CrossOrigin
    public ShapeListDTO queryByAdcode(@RequestParam("adcode") Integer adcode) {
   
   
        log.info("queryByAdcode,adcode:{}", adcode);
        return cityService.queryByAdcode(adcode);
    }


//返回对象数据结构
@Data
public class ShapeListDTO {
   
   
    private Integer total;
    private List<String> shape;
}

前端

前端通过ajax请求后端接口获取数据,然后调高德JS API方法将多边形边界数据在页面上渲染即可

直接贴代码:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
    <link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
    <title>地图显示</title>
    <style>
        html,
        body,
        #container {
    
    
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
<div id="container"></div>
<!-- 加载地图JSAPI脚本 -->
<script src="https://webapi.amap.com/maps?v=2.0&key=【你申请的key】"></script>
<script>
    var req = new XMLHttpRequest();
    req.open("GET", "http://127.0.0.1:8080/queryByAdcode?adcode=110000")
    req.onload = function () {
    
    
            if (req.responseText == '') {
    
    
                errorMsg.style.display = 'block'
            } else {
    
    
                console.log(req.responseText)
                var map = new AMap.Map('container', {
    
    
                    viewMode: '3D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
                    zoom: 11, //初始化地图层级
                    center: [116.397428, 39.90923], //初始化地图中心点
                });

                var resp = JSON.parse(req.responseText);
                var total = resp.total;
                var shapes = resp.shape;
                for (var i = 0; i < total; i++) {
    
    
                    var poly = shapes[i];
                    var points = poly.split(",");
                    var list = [];
                    for (var j = 0; j < points.length; j++) {
    
    
                        var pp = points[j].split(" ");
                        list.push(pp);
                    }
                    var polygon1 = new AMap.Polygon({
    
    
                        path: list,          //设置线覆盖物路径
                        fillColor: '#42cee0', // 多边形填充颜色
                        borderWeight: 2, // 线条宽度,默认为 1
                        strokeColor: 'red', // 线条颜色
                    });
                    map.add(polygon1);
                }
            }
    }
    req.send();

</script>
</body>
</html>

效果图

1_2.png

代码

我的代码仓库地址,这里只有后端代码:https://github.com/longbig/LBS-learn

相关文章
|
10月前
|
数据可视化 Python
python开发低代码数据可视化大屏:启动页(1)
python开发低代码数据可视化大屏:启动页(1)
75 0
|
12月前
|
数据可视化 安全 Cloud Native
AntV 你的保姆级数据可视化解决方案
AntV 你的保姆级数据可视化解决方案
532 0
|
数据可视化 BI
FineReport 数据可视化平台设计笔记
FineReport如何添加控件(自己安装插件)?
160 0
FineReport 数据可视化平台设计笔记
|
监控 数据可视化 数据挖掘
【ImagineDesign】数据可视化大屏设计经验分享
【ImagineDesign】数据可视化大屏设计经验分享
211 0
【ImagineDesign】数据可视化大屏设计经验分享
|
SQL 数据可视化 JavaScript
Superset 0.37 发布——颜值最高的数据可视化平台
Superset 0.37 发布——颜值最高的数据可视化平台
664 0
Superset 0.37 发布——颜值最高的数据可视化平台
|
Web App开发 前端开发 JavaScript
前端数据可视化插件(二)图谱
前端数据可视化插件(二)图谱
前端数据可视化插件(二)图谱
|
开发框架 数据可视化 算法
惊艳!人人都能玩转酷炫的数据可视化,高德LOCA 2.0全新升级,轻松实现海量数据渲染
“一图胜千言”,大数据时代来临,数据与人们生活密切相关。复杂难懂且体量庞大的数据给人的感觉总是冷冰冰的,让人难以获取到重点信息,也找不出规律和特征,数据价值发挥不出来。空间数据可视化就是为了解决这些问题,用通俗易懂的图形符号还原数据,表达多纬度数据信息,让你的数据“活”起来!
626 0
惊艳!人人都能玩转酷炫的数据可视化,高德LOCA 2.0全新升级,轻松实现海量数据渲染
|
监控 数据可视化 大数据
Apsara Clouder认证之旅 使用DataV制作实时销售数据可视化大屏
认证笔记 - Apsara Clouder 技能认证 - 大数据技能认证 - 使用 DataV 制作实时销售数据可视化大屏
401 0
Apsara Clouder认证之旅 使用DataV制作实时销售数据可视化大屏
|
开发框架 数据可视化 搜索推荐
数据人必读!玩转数据可视化用这个就够了——高德LOCA API 2.0升级来袭!
通过高德 LOCA 数据可视化,你可以轻轻松松把一堆枯燥无味的数据通过酷炫的方式展示到地图上,并顺手生成那个牛气哄哄的可视化方案!
|
监控 数据可视化 安全
双11大战必备神器——DataV数据可视化
可通过交互式实时数据大屏展现销售数据战况,多款双11风格大屏模板开箱即用,更可适配移动端随时随地监控业务数据。
3540 0
双11大战必备神器——DataV数据可视化