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 ...
随机推荐
- go-linux环境搭建
下载 go1..linux-amd64.tar.gz 解压: tar zxvf go1..linux-amd64.tar.gz -C /usr/local 配置环境变量:vim /root/.bas ...
- libevent::事件::定时器2
#define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg)) #include <cstdio> #include ...
- Tomcat源码分析三:Tomcat启动加载过程(一)的源码解析
Tomcat启动加载过程(一)的源码解析 今天,我将分享用源码的方式讲解Tomcat启动的加载过程,关于Tomcat的架构请参阅<Tomcat源码分析二:先看看Tomcat的整体架构>一文 ...
- Topaz ReMask 5抠图神器
Topaz ReMask 5抠图神器 与Photoshop相比,ReMask不需要繁琐的刷子工作来获得高质量的面膜.您只需粗略勾勒出主题并按"计算"即可. 在Photoshop中制 ...
- LeetCode初级算法--动态规划01:爬楼梯
LeetCode初级算法--动态规划01:爬楼梯 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net ...
- 【python数据分析实战】电影票房数据分析(一)数据采集
目录 1.获取url 2.开始采集 3.存入mysql 本文是爬虫及可视化的练习项目,目标是爬取猫眼票房的全部数据并做可视化分析. 1.获取url 我们先打开猫眼票房http://piaofang.m ...
- Unity - HasExitTime用法
本文详细分析了AnimatorController中动画切换过渡问题,即Translation过渡及hasExitTime的问题.方法为对实际项目中的所有情况进行分类,规划逻辑图,可视化分析解决这些问 ...
- SpringBoot 遇到 No identifier specified for entity
No identifier specified for entity 从字面上不难看出来是没有设置主键 因为没有为标注为@Entity的实体类注明主键 import lombok.Data; impo ...
- LaTeX常用篇(三)---矩阵与表格
目录 1. 序言 2. 矩阵 2.1 复杂写法 2.2 简化写法 2.3 复杂矩阵 3. 表格 4. 对齐 更新时间:2019.10.02 1. 序言 矩阵是一个强大的工具,许多东西都能够用矩阵来 ...
- vue.js 使用 vue-router 修改页面标题
module.exports = { name: 'myComponent', data: {} route{ data: function(){ document.title = "页面标 ...