leaflet 整合 esri
此 demo 通过 proj4js 将 leaflet 与 esri 整合起来,同时添加了 ClusteredFeatureLayer 的支持。

<html>
<head>
<meta charset=utf-8 />
<title>Esri Leaflet Quickstart</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /> <link rel="stylesheet" href="leaflet/leaflet.css" />
<link rel="stylesheet" type="text/css" href="leaflet/MarkerCluster.css" />
<script type="text/javascript" src="leaflet/leaflet-src.js"></script>
<script type="text/javascript" src="leaflet/proj4.js"></script>
<script type="text/javascript" src="leaflet/proj4leaflet.js"></script>
<script type="text/javascript" src="leaflet/esri-leaflet-src.js"></script>
<script type="text/javascript" src="leaflet/leaflet.markercluster-src.js"></script>
<script type="text/javascript" src="leaflet/leaflet.esri.ClusteredFeatureLayer.js"></script> <style>
body { margin:0; padding:0; }
#map { position: absolute; top:0; bottom:0; right:0; left:0; }
</style>
</head>
<body> <div id="map"></div> <script>
var centerPoint = new L.LatLng(39.40, 117.30);
var SERVICE_PATH = "http://192.168.1.111/ArcGIS/"
// crs 的设置参考上一篇文章
var crs = new L.Proj.CRS("EPSG:2384", "+proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs",
{
origin: [0, 0],
resolutions: [
264.583862501058,
132.291931250529,
66.1459656252646,
33.0729828126323,
16.9333672000677,
8.46668360003387,
4.23334180001693,
2.11667090000847,
1.05833545000423,
0.529167725002117,
0.264583862501058,
0.132291931250529
]
});
var mapOptions = {
center: centerPoint,
zoom: 0,
crs: crs,
attributionControl: true,
};
var map = L.map('map', mapOptions);
var tileLayer = L.esri.tiledMapLayer({
url:SERVICE_PATH + '/rest/services/[Tile 地图名称]/MapServer',
maxZoom: 11,
minZoom: 0,
continuousWorld: true
});
map.addLayer(tileLayer);
var featureMap = {
"SDE LAYER": L.esri.clusteredFeatureLayer({
url: SERVICE_PATH + '/rest/services/[SDE 或 Feature 地图名称]/MapServer/1',
opacity: 0.5,
useCors: false
})
};
L.control.layers(null, featureMap).addTo(map);
</script> </body>
</html>
上一篇文章中使用了 leaflet 自身的 TileLayer 直接加载瓦片,此 demo 中通过 esri-leaflet 中的 L.esri.tiledMapLayer 加载更加方便,但是需要注意的是,以此方式必须设置 maxZoom 及 minZoom。
centerPoint 必须使用经纬度坐标,80坐标不可以呦。
使用 demo,必须替换 crs 中的投影字符串、 origin,以及地图服务的网址。
esri-leaflet 和 arcgis javascript api 的定位是不同的,更多的是用来进行数据可视化,所以对于SDE数据的维护还是使用 arcgis jsapi 更方便一些。
leaflet 整合 esri的更多相关文章
- Leaflet(Esri)初识
加载本地地图 <html> <head> <metacharset=utf-8/> <title>IdentifyingFeatures</tit ...
- R+大地图时代︱ leaflet/leafletCN 动态、交互式绘制地图(遍地代码图)
好久没有学习R的新包了,甚是想念啊! 昨天.今天看到两个极好.不得不学的packages+早上被AWS的服务器整得郁闷ing-于是就来点颜色看看~ 本篇受Lchiffon老师的github启发,对两个 ...
- openlayers渲染mapbox gl的vector tile
准备条件 https://openlayers.org/en/v4.6.5/build/ol.js https://cdn.polyfill.io/v2/polyfill.min.js DEMO &l ...
- OpenLayers典型部分概述
中文学习:http://www.openlayers.cn/portal.php 原文地址:https://www.jianshu.com/p/e693711a7008 一 OpenLayers核心职 ...
- 【GIS】Vue esri-leaflet
1.npm install esri-leaflet --save 2.引入包 import Leaflet from "leaflet"; var esri = require( ...
- VectorMap.js 矢量地图库 – 快速入门
VectorMap.js是一个开源地图渲染JavaScript库, 可以使用WebGL或者HTML5两种方式进行交互式矢量地图 (包括“矢量瓦片地图”,一般性矢量数据地图)和 栅格瓦片地图的渲染. W ...
- WebGIS中快速整合管理多源矢量服务以及服务权限控制的一种设计思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在真实项目中,往往GIS服务数据源被其他多个信息中心或者第三方 ...
- Esri的开源JS项目杂谈
一提到Esri大家首先想到的是庞大的ArcGIS产品大家族,其产品包含从桌面端,到服务器/云端,再到web/移动端.作为一名极客,不聊开源逼格似乎上不去啊.其实,Esri作为一个开放的平台,不仅有稳定 ...
- leaflet地图库
an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...
随机推荐
- day 69crm(6) stark组件 action 和 多层过滤效果
前情提要: 今天学的是stark 组件的 action 和多层过效果 一: action (自定制函数多选功能效果) 1: 学习 观点明确: 2: 多选效果前端和后端进行的操作 2& ...
- thinkphp5动态生成二维码实例总结
thinkphp5关于动态生成二维码类库总结: 遇到的最大问题如下:我想大部分人也碰到过,所有觉得有必要总结下: thinkphp5提示找不到Qrcode类,可是自己明明都放置到了,vendor 目录 ...
- Java之集合(十五)Set综述
转载请注明源出处:http://www.cnblogs.com/lighten/p/7427554.html 1.前言 原本按照顺序应该是list.queue然后就是set的讲解,但是因为set的实现 ...
- Java之IO(十二)CharArrayReader和CharArrayWriter
转载请注明源出处:http://www.cnblogs.com/lighten/p/7082668.html 1.前言 本章介绍字符数组流,作用和ByteArrayInputStream字节数组流相同 ...
- Win7上装CentOS7 双系统
今天折腾了半天,终于在Win7上把CentOS装上了,Win7和CentOS双系统共存,可自由切换. 你问我为什么不装在虚拟机上,我只能说我的电脑卡得一B. 装机参考: 1.Window7+CentO ...
- IE中的userData
之前做项目时用到了localstorage,但是考虑到浏览器存在IE8以下不兼容问题,所以来介绍以下IE中的userData. 本地存储解决方案很多,比如Flash SharedObject.Goog ...
- jdk1.6 改 jdk1.7或jdk1.8(改回也可以)(图文详解)
不多说,直接上干货! 第一步:设置默认使用的JDK和JRE环境 具体步骤:菜单window->preferences->java->Installed JRES 点中了,右边的窗口 ...
- sklearn 绘制roc曲线
from sklearn.metrics import roc_curve, auc import matplotlib as mpl import matplotlib.pyplot as plt ...
- Linux下最常用的Shell命令的介绍
Shell基础: 你可以通过打开Linux的terminal(终端)来执行Shell命令.Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell.在现在的大多数Linux ...
- H5开发过程中修复的bug记录
从2016年8月1日开始真正意义上的修复bug,也是自己开发之路的开端,希望在这里记录自己修bug过程中遇到的问题及解决方法,待能够自己开发需求的时候,计划记录开发新需求过程中遇到的问题,并且记录自己 ...