我们临时会遇到一些测试数据,通常从数据库中以 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 文件的方法的更多相关文章

  1. 转换成CSV文件、Word、Excel、PDF等的方法--读取CSV文件的方法

    1. 转换成CSV文件: http://www.dotnetgallery.com/lab/resource93-Export-to-CSV-file-from-Data-Table-in-Aspne ...

  2. 用程序读取CSV文件的方法

    CSV全称 Comma Separated values,是一种用来存储数据的纯文本文件格式,通常用于电子表格或数据库软件.用Excel或者Numbers都可以导出CSV格式的数据. CSV文件的规则 ...

  3. Python中读取csv文件内容方法

    gg 224@126.com 85 男 dd 123@126.com 52 女 fgf 125@126.com 23 女 csv文件内容如上图,首先导入csv包,调用csv中的方法reader()创建 ...

  4. 一个简易的PHP读取CSV文件的方法

    1. 思路:先打开文件,读取出文件有多少行,然后逐行读取数据放入一个数组中 public function read_csv_lines($csv_file = '', $lines = 0, $of ...

  5. JavaScript 读取CSV文件并转为js对象

    html部分 <!-- 创建隐藏file input --><button type="button" name="seach" onclic ...

  6. C#:StreamReader读取.CSV文件(转换成DataTable)

    using System.Data; using System.IO; /// <summary> /// Stream读取.csv文件 /// </summary> /// ...

  7. 使用Arcgis Api for Javascript 调用 本地Portal发布的WebMap

    1.环境搭建 安装Arcgis Portal 10.4,Server 10.4,DataStore ,WebAdaptor for IIS,搭建arcgis api for javascript 4. ...

  8. 下载并部署 ArcGIS API for JavaScript 4.10

    学习ArcGIS API for JavaScript 4.10 的第一步就是下载并部署该文件. 有的读者由于之间没接触过,不知道怎么下载和部署文件.这些读者要求作者详细的写一篇关于下载和部署的文章( ...

  9. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

随机推荐

  1. ‎Cocos2d-x 学习笔记(15.1) EventDispatcher

    EventDispatcher对监听器进行管理,围绕着监听器工作.可以添加.删除.暂停/恢复监听器.分发事件到监听器. 1. 一些成员 /** 把ListenerID和同ID监听器的容器对应 */ s ...

  2. JVM 中发生内存溢出的 8 种原因及解决办法

    1. Java 堆空间 2. GC 开销超过限制 3. 请求的数组大小超过虚拟机限制 4. Perm gen 空间 5. Metaspace 6. 无法新建本机线程 7. 杀死进程或子进程 8. 发生 ...

  3. Python开发【第四篇】语句与函数

    语句 statement 语句是由一些表达式组成,通常一条语句可以独立的执行来完成一部分事情,并且形成结果. 多条语句写在一行内要用分号分开 例子: print('hello world') #这是一 ...

  4. ssh-keygen创建证书

    ssh-keygen安装请参考以下内容:https://blog.csdn.net/a419419/article/details/80021684 (可能我已经安装过git了,所以不需要安装,具体细 ...

  5. PHP安装amqp拓展(win环境)

    安装php扩展amqp 先查看自己的php版本 记住版本  至于这个线程安全问题 这里引用了别人的自己看看吧  http://blog.csdn.net/aoyoo111/article/detail ...

  6. Leetcode(6)Z字形变换

    Leetcode(6)Z字形变换 [题目表述]: 将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" ...

  7. IntelliJ IDEA 2019.2最新版本免费激活码

    IntelliJ IDEA 2019.2最新版本免费激活码 支持IDEA所有版本 正版授权激活码 今天更新了一下,支持java13等新功能.下面是激活码 812LFWMRSH-eyJsaWNlbnNl ...

  8. matlab 7遇到的错误 解决方法

    安装路径 参考D:\matlab7 安装最后一步弹出 未找到解决方法.不过没有发现有何影响. 安装完成后出现 1. To configure Real-Time Windows Target you ...

  9. vue-cli 如何使用vue-awesome?

    font-awesome 有很多图标字体可供使用,那么,如何在vue中使用呢? 进入重点... 1.安装vue-awesome npm insatll vue-awesome 2.在main.js 注 ...

  10. [springboot 开发单体web shop] 3. 用户注册实现

    目录 用户注册 ## 创建数据库 ## 生成UserMapper ## 编写业务逻辑 ## 编写user service UserServiceImpl#findUserByUserName 说明 U ...