openlayers学习笔记(十三)— 异步调用JSON数据画点、文字标注与连线
使用Openlayers 3实现调用本地json数据在地图上添加点、文字标注以及连线。

生成底图地图
首先得有一个地图作为底图,代码如下:
let vectorSource = new ol.source.Vector({
wrapX: false
});
const rootLayer = new ol.layer.Tile({
source: new ol.source.TileImage({
url: 'http://mt2.google.cn/vt/lyrs=y&hl=zh-CN&gl=CN&src=app&x={x}&y={y}&z={z}&s=G'
}) //加载谷歌影像地图
});
const vectorLayer = new ol.layer.Vector({
source: vectorSource
})
const center = ol.proj.fromLonLat([91.29638423, 28.90222228], 'EPSG:3857');
const map = new ol.Map({
target: 'map',
renderer: 'canvas',
layers: [rootLayer, vectorLayer],
view: new ol.View({
center: center,
zoom: 9
})
})
加载数据
使用ajax加载本地json数据
const url = './data/data.json';
window.onload = () => {
$.ajax({
url: url,
dataType: 'json',
success: res => {
let features = res.features;
let coordsArray = features.map(obj => {
let pointTransform = ol.proj.transform([obj[0][0], obj[0][1]], 'EPSG:4326', 'EPSG:3857');
return pointTransform;
})
console.log(coordsArray); for(let i = 0; i < features.length; i++) { let coords = features[i][0]; // 坐标
let mark = features[i][1];
let pointId = mark + 'pointId'; //文字
let point = ol.proj.fromLonLat(coords); // 多边形封闭
let plygonfeature = new ol.Feature({
geometry: new ol.geom.Polygon([coordsArray])
});
plygonfeature.setStyle(new ol.style.Style({
fill: new ol.style.Fill({
color: 'transparent'
}),
stroke: new ol.style.Stroke({
width: 2,
color: [255, 255, 0, 0.8]
}),
}))
vectorLayer.getSource().addFeature(plygonfeature); // 文字标注
let anchorValue = new ol.Feature({
geometry: new ol.geom.Point(point)
})
anchorValue.setStyle(new ol.style.Style({
text: new ol.style.Text({
font: '15px Microsoft YaHei',
text: mark,
offset: [30, 0],
fill: new ol.style.Fill({
color: '#fff'
})
}),
image: new ol.style.Circle({
radius: 2,
snapToPixel: false,
fill: new ol.style.Fill({
color:'#333'
}),
stroke: new ol.style.Stroke({
color: '#333'
})
})
}))
vectorLayer.getSource().addFeature(anchorValue);
}
}
})
}
openlayers学习笔记(十三)— 异步调用JSON数据画点、文字标注与连线的更多相关文章
- iOS学习笔记(十一)——JSON数据解析
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- java之jvm学习笔记十三(jvm基本结构)
java之jvm学习笔记十三(jvm基本结构) 这一节,主要来学习jvm的基本结构,也就是概述.说是概述,内容很多,而且概念量也很大,不过关于概念方面,你不用担心,我完全有信心,让概念在你的脑子里变成 ...
- Web Service学习笔记:动态调用WebService
原文:Web Service学习笔记:动态调用WebService 多数时候我们通过 "添加 Web 引用..." 创建客户端代理类的方式调用WebService,但在某些情况下我 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)
tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...
- tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)
续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...
- python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息,抓取政府网新闻内容
python3.4学习笔记(十三) 网络爬虫实例代码,使用pyspider抓取多牛投资吧里面的文章信息PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI,采用Python语言编写 ...
- SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
目标:减少SQL查询数据,避免使用一条SQL语句解决复杂问题 反模式:视图使用一步操作,单个SQL语句解决复杂问题 使用一个查询来获得所有结果的最常见后果就是产生了一个笛卡尔积.导致查询性能降低. 如 ...
随机推荐
- Codeforces 850A - Five Dimensional Points(暴力)
原题链接:http://codeforces.com/problemset/problem/850/A 题意:有n个五维空间内的点,如果其中三个点A,B,C,向量AB,AC的夹角不大于90°,则点A是 ...
- 【转】django 正则URL 匹配
django 正则URL 匹配 转自:https://www.cnblogs.com/chenkeven/articles/9305260.html 一.引子 在day17 作业中,我们查看主机详细 ...
- js请求解析xml
xml数据 <?xml version="1.0" encoding="utf-8"?> <table> <node name=& ...
- "C++ Primer Plus" is WAY FUCKING BETTER than "C++ Primer" (For Beginners)!!!
再看到给初学C++的人推荐C++ Primer的我就要揍人了,真的! 被他妈这帮装逼犯给误导了,耽误了无数的功夫! 就是听这帮傻逼的谣言,说C++ Primer讲解更深入什么的,初学也应该啃这本书,老 ...
- Oulipo (poj3461
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 29759 Accepted: 11986 Descript ...
- easyui的datagrid里getSelections只能获取一行值???
使用getSelections只能获取到一行的值,检查了半天是因为idField属性值写错,更正之后ok. 解决办法二:改为使用getChecked,idField写错无影响, 注: getSelec ...
- CSS3中哪些新属性—阴影、文本省略(1)
CSS3中的阴影,我知道的就是盒阴影和文字阴影.两者使用大同小异. 1.文字阴影 不知道为啥阴影会被开发出来,觉得这没啥好用啊.用了之后发现好像还行,使页面更有立体感了那么一点点.看起来趣味性强一点. ...
- 匿名函数 sorted() filter() map() 递归函数
一. lambda() 匿名函数 说白了,从字面理解匿名函数就是看不见的函数,那么他的看不见表现在哪里呢? 其实就是在查询的时候他们的类型都是lambda的类型所以叫匿名,只要是用匿名函数写的大家 ...
- Looper,Handler, MessageQueue
Looper Looper是线程用来运行消息循环(message loop)的类.默认情况下,线程并没有与之关联的Looper,可以通过在线程中调用Looper.prepare() 方法来获取,并通过 ...
- 应用安全 - Windows操作系统 - 漏洞 - 汇总
FTP弱密码 将FTP服务器的密码更改为强密码 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO #禁止匿名登录 重启ftp服务 Windows匿名用户整改 ...