ArcGIS API For Javascript :读取 CSV 文件的方法
我们临时会遇到一些测试数据,通常从数据库中以 CSV 格式导出。最简单实用的方法就是使用 ajax 去读取文件,记得引入 jQuery 。
例如,在《ArcGIS JS API :新增一个热力图层的方法》中我们已经生成了名为“heatmapfeatureLayer_1”的图层,这时我们有若干个包含坐标信息的 CSV 文件,想要使用这些数据生成热力图。
方法一
数据准备
我们假设拿到的 CSV 数据有名称、经度、纬度和个数四个字段。
| 海洋生物保护协会 | 110.3406 | 20.07484 | 93 |
| 塞维阳光管理处 | 110.3426 | 20.06408 | 7 |
| 天润工程检测中心 | 110.3471 | 20.07359 | 35 |
| 白沙门社区居民委员会 | 110.33 | 20.07125 | 30 |
| 白沙社区居委会 | 110.3274 | 20.07546 | 89 |
| 红岛边防派出所白沙门警务室 | 110.3318 | 20.07212 | 57 |
| 红岛边防派出所 | 110.3341 | 20.07128 | 59 |
| 中共白沙门社区支部委员会 | 110.3297 | 20.07029 | 64 |
| 民生管道燃气有限公司公用管道检验中心 | 110.3366 | 20.06883 | 42 |
定义函数
我们来写一个函数实现,为了让函数有更好的伸缩性,我们将 CSV 路径与图层名称作为参数。函数如下:
function AddPoint2heatLayer(n,l){
eval(l).graphics=[];//这一步是先清空当前图层的所有几何要素
$.ajax({
url: n,
datatype: "json",
async: false,
data: {},
success: function(data) {
var dataStr = new String(data);
var lines = dataStr.split('\n');
var result = new Array();
for(var i=1, il=lines.length; i<il; i++){
var item = lines[i].split(',');
result[i-1] = {};
result[i-1].lng = Number(item[1]);// CSV 中第二列:经度
result[i-1].lat = Number(item[2]);// CSV 中第三列:纬度
result[i-1].num = item[3];// CSV 中第四列:数量
}
//csv 已转为 json
//循环每个坐标对,并将其写入图层中
for (var i = 0; i < result.length; i++) {
var x = result[i].lng;
var y = result[i].lat;
var point = new esri.geometry.Point(x, y, new esri.SpatialReference({wkid: 4326}));
eval(l).add(new esri.Graphic(point));
eval(l).graphics[i].attributes = {};
eval(l).graphics[i].attributes.num = result[i].num;
}
}});
}
其中参数 n 为 CSV 路径,例如:"test.csv",参数 l 为图层名称,例如“heatmapfeatureLayer_1”。
调用函数
当我们多次使用时,即可这样调用:
AddPoint2heatLayer("net/heatmap.csv","heatmapfeatureLayer_1");
其实这么写的原因是,后期很可能会使用多时段的数据来做动态热力图,读取数据也会直接通过后台接口来实现,届时只需要修改函数中数据封装的部分即可。
方法二
引入类
在 require 中引入:
"esri/layers/CSVLayer",
"esri/renderers/SimpleRenderer",
"esri/symbols/SimpleMarkerSymbol",
"esri/Color",
在 function 中加入相应的:
CSVLayer, SimpleRenderer, SimpleMarkerSymbol, Color
调用函数
var csv = new esri.layers.CSVLayer("test.csv");
var orangeRed = new esri.Color([0, 255, 100, 0.8]);
var marker = new esri.symbol.SimpleMarkerSymbol("solid", 12, null, orangeRed);
var renderer = new esri.renderer.SimpleRenderer(marker);
csv.setRenderer(renderer);
map.addLayer(csv);
ArcGIS API For Javascript :读取 CSV 文件的方法的更多相关文章
- 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法
1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...
- 用程序读取CSV文件的方法
CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件.用Excel或者Numbers都可以导出CSV格式的数据. CSV文件的规则 ...
- Python中读取csv文件内容方法
gg 224@126.com 85 男 dd 123@126.com 52 女 fgf 125@126.com 23 女 csv文件内容如上图,首先导入csv包,调用csv中的方法reader()创建 ...
- 一个简易的PHP读取CSV文件的方法
1. 思路:先打开文件,读取出文件有多少行,然后逐行读取数据放入一个数组中 public function read_csv_lines($csv_file = '', $lines = 0, $of ...
- JavaScript 读取CSV文件并转为js对象
html部分 <!-- 创建隐藏file input --><button type="button" name="seach" onclic ...
- C#:StreamReader读取.CSV文件(转换成DataTable)
using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// ...
- 使用Arcgis Api for Javascript 调用 本地Portal发布的WebMap
1.环境搭建 安装Arcgis Portal 10.4,Server 10.4,DataStore ,WebAdaptor for IIS,搭建arcgis api for javascript 4. ...
- 下载并部署 ArcGIS API for JavaScript 4.10
学习ArcGIS API for JavaScript 4.10 的第一步就是下载并部署该文件. 有的读者由于之间没接触过,不知道怎么下载和部署文件.这些读者要求作者详细的写一篇关于下载和部署的文章( ...
- Javascript写入txt和读取txt文件的方法
文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...
随机推荐
- [Luogu3787] 冰精冻西瓜
题目背景 盛夏,冰之妖精琪露诺发现了一大片西瓜地,终于可以吃到美味的冻西瓜啦. 题目描述 琪露诺是拥有操纵冷气程度的能力的妖精,一天她发现了一片西瓜地.这里有n个西瓜,由n-1条西瓜蔓连接,形成一个有 ...
- libevent::事件
/***************************************************************** 函数功能: 创建事件集 ********************* ...
- SpringBoot系列教程之Bean之指定初始化顺序的若干姿势
上一篇博文介绍了@Order注解的常见错误理解,它并不能指定 bean 的加载顺序,那么问题来了,如果我需要指定 bean 的加载顺序,那应该怎么办呢? 本文将介绍几种可行的方式来控制 bean 之间 ...
- Netty 入门,这一篇文章就够了
Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo.Rocketmq.Hadoop等,针对高性能RPC,一般都是基于Net ...
- SCOI2005 繁忙的都市 [Luogu P2330]
题目描述 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口之间最多有一条 ...
- [2018-01-13] 什么是Django
什么是Django? Django是一个基于Python的高级Web开发框架 它能够让开发人员进行高效且快速的开发 高度集成(不用自己造轮子),免费并且开源(内部已经实现了许多高级的功能) 浏览器浏览 ...
- FastJson稍微使用不当就会导致StackOverflow
GitHub 9.4k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 9.4k Star 的 ...
- Vue使用antV G2制作看板
工作中需要制作一个看板,选型选用antV G2进行开发. 由于项目前端是使用Vue,于是研究了antVG2在Vue中的使用. 1.安装antv/g2 npm install @antv/g2 --sa ...
- 工具类 ,无需再存localstorage
/** * 工具类 */var Utils = { /** * 获得查询参数 */ getQueryString: function(name) { var search = location.sea ...
- 使用Typescript重构axios(十六)——请求和响应数据配置化
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...