添加ArcGIS数据
加载arcgis server的rest服务瓦片数据:ol.layer.Tile+ol.source.TileArcGISRest
加载arcgis online的在线瓦片数据:ol.layer.Tile+ol.source.XYZ
加载arcgis server的rest服务矢量数据:ol.layer.Vector+ol.source.Vector

上图所示是server的服务瓦片数据。
1、加载arcgis的服务瓦片数据:要注意将js写在地图标签的后面才能生效,不然地图出不来
var map = new ol.Map({
target:"mapDiv",
view:new ol.View({
center:[0,0],
zoom:5 //初始化的中心点是缩放
})
});
var arcgisSource = new ol.source.TileArcGISRest({
url:"http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer"
});
var arcgisLayer = new ol.layer.Tile({
source:arcgisSource,
extent:[-13884991,2870341,-7455066,6338219]
});
map.addLayer(arcgisLayer);
setMapView([-10997148, 4569099],5);
function setMapView(center,zoom){
var view = map.getView();
view.setCenter(center);
view.setZoom(zoom);
}
<div id="mapDiv"></div>
2、加载arcgis online的在线瓦片数据
var arcgisSource = new ol.source.XYZ({
attributions:new ol.Attribution({
html:'Tiles © <a href="http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer">ArcGIS</a>'
})
url:"http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}"
});
var arcgisLayer = new ol.layer.Tile({
source:arcgisSource
});
map.addLayer(arcgisLayer);
setMapView(ol.proj.fromLonLat([-121.1, 47.5]),7); //坐标转换问题?
3、加载arcgis server的rest服务矢量数据
var serviceUrl = 'http://services.arcgis.com/rOo16HdIMeOBI4Mb/arcgis/rest/' + 'services/PDX_Pedestrian_Districts/FeatureServer/'; //根目录
var layer = '0'; //参数设置
var esrijsonFormat = new ol.format.EsriJSON(); //ESRI的JSON数据格式解析类
//实例化矢量数据源对象(AJAX请求REST服务)
var arcGISSource = new ol.source.Vector({
loader: function (extent, resolution, projection) {
var url = serviceUrl + layer + '/query/?f=json&' +
'returnGeometry=true&spatialRel=esriSpatialRelIntersects&geometry=' +
encodeURIComponent('{"xmin":' + extent[0] + ',"ymin":' +
extent[1] + ',"xmax":' + extent[2] + ',"ymax":' + extent[3] +
',"spatialReference":{"wkid":102100}}') +
'&geometryType=esriGeometryEnvelope&inSR=102100&outFields=*' +
'&outSR=102100';
$.ajax({
url: url,
dataType: 'jsonp',
success: function (response) {
if (response.error) {
alert(response.error.message + '\n' + response.error.details.join('\n'));
} else {
// 从请求结果中读取要素
var features = esrijsonFormat.readFeatures(response, {
featureProjection: projection
});
if (features.length > 0) {
arcGISSource.addFeatures(features);//将要素设置到数据源中
}
}
}
});
},
strategy: ol.loadingstrategy.tile(ol.tilegrid.createXYZ({
tileSize: 512
}))
});
arcGISLayers = new ol.layer.Vector({
source: arcGISSource
});
map.addLayer(arcGISLayers); //添加地图图层
setMapView(ol.proj.fromLonLat([-121.1, 47.5]), 5);
添加ArcGIS数据的更多相关文章
- ArcEngine批量添加XY数据
使用ArcGIS Desktop “添加XY数据”或者“创建XY事件图层”工具 可以导入Excel坐标数据,生成临时图层并添加至ArcMap.ArcGlobe或者ArcScene中.在ArcEngin ...
- ArcGIS数据生产与精细化制图之中国年降水量分布图的制作
原文:ArcGIS数据生产与精细化制图之中国年降水量分布图的制作 楼主按:在今年的Esri中国用户大会上,我听了几场关于ArcGIS用于制图方面的讲座,也在体验区与Esri中国的技术老师有一些交流.一 ...
- thinkphp添加空数据的解决办法
thinkphp真是个麻烦的东西,各种小问题,其中字段映射的表单名不能与数据库的字段名称相同,否则会添加空数据! 还有自动完成的名称要与字段映射后的名称相同,否则自动完成不会起作用! 还有自动验证的字 ...
- Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据
背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...
- “ArcGIS数据应用和地图打印输出
中国科学院计算技术研究所教育中心 关于开展“ArcGIS数据应用和地图打印输出” 培训班的通知 各相关单位: 随着信息化.网络化.数字化向纵深发展,互联网与空间地理信息系统相互交织,数字地球.“智慧地 ...
- 更新ACCESS数据库出现“字段太小而不能接受所要添加的数据的数量。试着插入或粘贴较少的数据。”的解决方法
今天进行数据调试时出现“字段太小而不能接受所要添加的数据的数量.试着插入或粘贴较少的数据.”,跟踪发现是在更新数据库的数据时出现的. 打开数据库表格发现出错的数据字段类型被定义为“文本”,也就是数据最 ...
- 向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法
转自原文 向SDE图层中添加大量数据时,出现ORA-00604以及ORA-01000的解决办法 写了一个小程序,从一个列表中读取坐标串,每个坐标串生成一个IPolygon,然后将这些Polygon添加 ...
- java+ mysql 给所有的表添加假数据
需求:别的项目, 代码扣过来了, 数据库也拿过来了, 但是数据库全是空表, 一共700 张表,需求是给表添加假数据,让它能运行起来. 一下是代码实现: 1.数据库连接: public static C ...
- ASP.NET MVC用存储过程批量添加修改数据
用Entity Framework 进行数据库交互,在代码里直接用lamda表达式和linq对数据库操作,中间为程序员省去了数据库访问的代码时间,程序员直接可以专注业务逻辑层的编写.但是对于比较复杂的 ...
随机推荐
- python的迭代器、生成器、三元运算、列表解析、生成器表达式
一 迭代的概念 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前 ...
- tinymce原装插件源码分析(七)-使能css、script
在tinymce中使用css个script tinymce的编辑器中css和script默认是不起作用的.(编辑器主要面向写文章使用,考虑到xss攻击,默认是不启用的) 需要修改tinymce.js中 ...
- 一般树--common tree
参照libyang中的lyd_tree的组织结构,写了一套通用树接口. github 的地址:https://github.com/HellsingAshen/mytc/tree/master/tc_ ...
- python3使用selenium3的坑
网络看了很多的文章,大部分都是不完整, 还有很多误导性极强的教程 ,特别是chromedriver这东西.简直一堆坑. 一首先是安装python3.6.5 root@ubuntu:~# add-apt ...
- php读写excel —— PhpSpreadsheet组件
前言 PhpSpreadsheet是一个纯PHP类库,它提供了一组类,允许您从不同的电子表格文件格式(如Excel和LibreOffice Calc)读取和写入.用PHP读取Excel.CSV文件 还 ...
- MyEclipse 设置JSP,HTML的默认打开方式,避免出现打开后上面出现浏览器
1. 2. 3. jsp的设置一样,这样myeclipse打开jsp就不会出现上面的浏览器了
- [luogu]P3572 [POI2014]PTA-Little Bird(单调队列)
P3572 [POI2014]PTA-Little Bird 题目描述 In the Byteotian Line Forest there are nn trees in a row. On top ...
- 安装NexT主题
Hexo 安装主题的方式非常简单,只需要将主题文件拷贝至站点目录的 themes 目录下, 然后修改下配置文件即可. 下载主题包 在终端窗口下,定位到 Hexo 站点目录下.使用 Git checko ...
- JavaScript 常见创建对象的方式
JavaScript 有哪几种创建对象的方式? javascript创建对象简单的说,无非就是使用内置对象或各种自定义对象,当然还可以用JSON:但写法有很多种,也能混合使用. (1)对象字面量的方式 ...
- js获得 json对象的个数(长度)
function getJsonObjLength(jsonObj) { var Length = 0; for (var item in jsonObj) { Length++; } return ...