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 ...
随机推荐
- C#刷遍Leetcode面试题系列连载(5):No.593 - 有效的正方形
上一篇 LeetCode 面试题中,我们分析了一道难度为 Easy 的数学题 - 自除数,提供了两种方法.今天我们来分析一道难度为 Medium 的面试题. 今天要给大家分析的面试题是 LeetCod ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- git生成SSH秘钥
1.进入git bash , 输入 cd ~/.ssh/ ,没有的话,自己创建 mkdir ~/.ssh , 然后进入该文件夹完成生成秘钥步骤 2.配置全局的name和email,这里是的你githu ...
- webpack知识分享
webpack 4 webpack 四大核心概念: 入口(entry) // 打包入口 输出(output) : 打包后输出的位置配置 loader : loader 让 webpack 能够去处理 ...
- win7更新,360手机安装谷歌框架
这两天把11平台被卸载了,不能打竞技场了,很伤心. 成年男子,总要找点有趣的事情去做.我准备洗心革面,好好学习.(巴拉巴拉巴拉一万字.) 首先第一件事情就是重装系统,(由于买了个假显卡,win10以上 ...
- Shiro learning - 入门学习 Shiro中的基础知识(1)
Shiro入门学习 一 .什么是Shiro? 看一下官网对于 what is Shiro ? 的解释 Apache Shiro (pronounced “shee-roh”, the Japanese ...
- Robot Framework——对时间操作的datetime库常用关键字
1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3.对时间格式转化,获取时间戳 4.从完整时间中取指定年月日等 5.对时间类型进行格式化 6.获取当前时间或者指定时区时 ...
- 设计模式(二)Adapter模式
Adapter模式也被成为Wrapper模式.适配器模式用于填补“现有的程序”和“所需的程序”之间差异的设计模式. Adapter模式有两种,即使用继承的适配器和使用委托的适配器. 1.使用继承的适配 ...
- django-模板之URL标签(五)
book/views.py from django.shortcuts import render def index(request): return render(request,"in ...
- [考试反思]0903NOIP模拟测试36:复始
因为多次被说颓博客时间太长于是 真香 恢复粘排行榜的传统. 大体上就是,T1A的前三,剩下的T2A的排名,再然后按照T3暴力得分排名. T1是个暴力.3个A的5个得分的.数据点极强爆零率极高. 我的思 ...