1 简述

今天继续LBS地理信息的学习,目标是写到10篇博客的时候,做出一个地图工具页面用,包含地图空间索引Geohash、S2、H3的可视化展示。

地理特征分为点(POI)、线(路径)、面(AOI),我们用高德地图导航时,其实就用到了这3个特征,简单说一下

  • 首先搜索目的地:三里屯,会搜到一个面数据,就是整个三里屯的边界范围,即AOI
  • 然后选取起点、终点,选取时下拉列表会显示多个地点,即POI
  • 最后按交通方式生成导航路径,即路径轨迹

2 POI

POI是Point of interest的缩写,中文翻译为兴趣点,是点数据。地图上任意一个位置都可以表示兴趣点,由经纬度和其他特征数据组成。

如上面说的三里屯,可以看作一个POI

POI在地图领域应用也挺多的,如:周边搜索,实时位置获取等

3 AOI

AOI是Area of Interest的简称,可以叫兴趣面,是面数据。AOI是POI更高一级的抽象,由多边形围栏边界和特征数据组成。

如高德地图搜索某个地点得到的面数据,就是一个AOI

4 路径

路径是GIS里面最复杂的特征了,是线数据。高德地图上两个位置之间的导航线路就是路径了

5 开发常用

上面说了点、线、面的特征,为了更好地理解,下面通过一个小示例,可视化地去体验数据特征

准备工作:

接着就可以开始搞了

直接上前端代码:

<!DOCTYPE html>
<html lang="en">
<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>
<script src="https://webapi.amap.com/loader.js"></script>
</head>
<body>
<div id="container"></div>
</body>
<script src="https://webapi.amap.com/maps?v=2.0&key=17e7146599b94ffcda13bbc48e1b4481"></script>
<script>
var map = new AMap.Map('container', {
viewMode: '3D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
zoom: 11, //初始化地图层级
center: [116.397428, 39.90923], //初始化地图中心点
}); //点标记
var marker = new AMap.Marker({
position:[116.39, 39.9]//位置
})
map.add(marker);//添加到地图 //线标记
var lineArr = [
[116.368,39.91], [116.371,39.94], [116.38,39.95]
];
var polyline = new AMap.Polyline({
path: lineArr, //设置线覆盖物路径
strokeColor: "#b706e9", //线颜色
strokeWeight: 5, //线宽
strokeStyle: "solid", //线样式
});
map.add(polyline); //面标记
// 多边形轮廓线的节点坐标数组
var path = [
new AMap.LngLat(116.368904,39.913),
new AMap.LngLat(116.382122,39.807),
new AMap.LngLat(116.387271,39.707),
new AMap.LngLat(116.398258,39.913)
];
var polygon = new AMap.Polygon({
path: path,
fillColor: '#f3e780', // 多边形填充颜色
borderWeight: 2, // 线条宽度,默认为 1
strokeColor: 'red', // 线条颜色
});
map.add(polygon);
</script>
</body>
</html>

看一下点线面的效果图

关注我的公众号:卷福同学,分享更多技术内容哦~

最新文章

  1. MDK5 STM32编译问题汇总
  2. SQL 统计两个表的数据,按同一日期分组
  3. 28. Triangle &amp;&amp; Pascal&#39;s Triangle &amp;&amp; Pascal&#39;s Triangle II
  4. WCF入门 (13)
  5. Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏
  6. java 语法糖
  7. HTML5.1就要来了
  8. jsonp与cors跨域的一些理解(转)
  9. javascript——数据类型
  10. ubuntu中vim下按上下左右键时输入A、B、C、D的问题
  11. Javascript自动化文档工具JSDuck在Windows下的使用心得
  12. .NET Core使用skiasharp文字头像生成方案(基于docker发布)
  13. MySQL数据库学习一 数据库概述
  14. 一例完全理解vue 2.0 的slots 和 functional render
  15. 比较集合List&lt;T&gt;集合,前后多了哪些数据,少了哪些数据Except
  16. RNA-seq workflow
  17. [20170728]oracle保留字.txt
  18. Django电商项目---完成购物车页面day4
  19. 单点登录(十五)-----实战-----cas4.2.x登录mongodb验证方式实现自定义加密
  20. 在jsp中接收并处理servlet传过来的含有bean的List

热门文章

  1. WebApplicationContext?
  2. 什么是Spring IOC 容器?
  3. MySQL主从复制(异步复制与半同步复制)
  4. MySQL碎片整理小节--实例演示
  5. layui表单使用开关滑块和复选框,渲染后台数据方法
  6. PHP截取字符串(指定开始和结束的字符串)
  7. 使用jquery-webcam插件,实现人脸采集并转base64
  8. JDK安装和卸载
  9. Myeclipse 中怎样更改web项目的访问名
  10. CVE-2022-22947 SpringCloud GateWay SpEL RCE