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 更方便一些。

时间: 2024-10-25 01:36:54

leaflet 整合 esri的相关文章

Leaflet(Esri)初识

加载本地地图 <html> <head> <metacharset=utf-8/> <title>IdentifyingFeatures</title> <metaname='viewport'content='initial-scale=1,maximum-scale=1,user-scalable=no'/> <!--从CDN上引入leaflet的文件--> <linkrel="stylesheet&q

R+大地图时代︱ leaflet/leafletCN 动态、交互式绘制地图(遍地代码图)

好久没有学习R的新包了,甚是想念啊! 昨天.今天看到两个极好.不得不学的packages+早上被AWS的服务器整得郁闷ing-于是就来点颜色看看~ 本篇受Lchiffon老师的github启发,对两个packages进行简单的试玩.leaflet是一个国外动态交互图做得很棒的网站,Lchiffon老师对其进行一些封装,适应了"中国国情",那就让我们先来看看Lchiffon的leafletCN. . . 一.leafletCN 本节主要"抄袭"Lchiffon的blo

2014Esri全球用户大会之Mobile &amp; Apps

1:移动解决方案策略是什么? 从四个维度来介绍移动解决方案: 1.支持多种移动平台,包括:iOS, Android和Windows phone. 2.支持流行的地图格式-web map,实现多端一张图. 3.提供拿来即用的app,包括:Collector for ArcGIS(外业数据采集和编辑),Explorer forArcGIS(移动地图展示和查询),OperationsDashboard for ArcGIS(态势感知和仪表盘),ArcPad/ArcGISfor Windows Mobi

【GIS】vue esri-leaflet

1.npm install esri-leaflet --save 2.引入包 import Leaflet from "leaflet"; var esri = require("esri-leaflet"); 3.添加底图 esri.basemapLayer("Topographic").addTo(this.map); 4.添加动态服务 esri.dynamicMapLayer({ url:"https://services.ar

leaflet开源地图库源码阅读笔记(一)——简介&amp;Demo初体验(by vczero)

一.简介 电子地图已经在O2O.生活服务.出行等领域布局,传统的GIS也孕育着互联网基因.传统GIS的图商有ESRI(Arc系列).四维.高德.超图.中地等等.在web互联网领域,百度和高德较为出色.但是开放源代码都远远做的不够,相比而言国外开源较多且丰富,最近认真研读了openlayers2/3和leaflet的源码,收获颇多,不仅加强对浏览器兼容性.HTML5.CSS3等基础,还增强了GIS的基础.本人现在也在一家互联网公司做js api的研发,因此,需要不断地吸取开源代码的营养. leaf

使用 Leaflet 显示 ArcGIS 生成西安80坐标的地图缓存

Leaflet 是一个非常小巧灵活的 Geo js 库,esri 本身也在 Github 上有 leaflet 的相关项目.但是 leaflet 本身支持 Web Mercator Auxiliary Sphere tiling scheme,无法直接加载 arcgis server 发布的图层缓存,需要通过 Proj4 这个库进行转换,这里涉及了投影的相关转换配置,可是没有相关专业知识怎么配置呀,不过只要会搜,一切都是可以的. 以下是具体的步骤: 1. 打开 ArcGIS 的 MapServe

使用Leaflet创建地图拓扑图

之前我们采用过 Openlayers+Qunee的方案,实现地图拓扑图,鉴于Openlayers是一种古老项目,略显臃肿,面向更新的前端地图方案,在客户的介绍下,我们找到了leaflet - 基于HTML5的轻量地图客户端方案,结合Qunee使用,以及第三方插件,实现更加轻快的地图拓扑图应用 Leaflet介绍 leaflet是一个开源软件,作者在乌克兰,在移动设备上的有良好的体验,比较新和现代的地图客户端,类库压缩后只有33k,非常小巧,这一点让qunee都相形见绌,先看一个leaflet的入

Esri:为Web GIS注入新内涵

纵观近些年IT与空间技术的发展,云计算.大数据.实时信息.LBS.无人机.倾斜摄影等新技术层出不穷:互联网基础设施建设成绩瞩目,宽带成为国家战略性公共基础设施. GIS(地理信息系统)作为空间信息分析和处理的重要工具,其应用需求也在发生着巨大的变化.在线的内容.便捷的协作.随时随地的多设备访问.大众化的应用等,已经成为GIS应用的新潮流.新趋势. GIS与最新的主流IT架构和技术的融合,催生了新一代的Web GIS.以空间数据及其处理.分析和表达为核心内容的Web Service的广泛创建.分享

leaflet+esri-leaflet+heatmap实现热力图

1.环境准备 1)下载leaflet.js插件,  官网传送:http://leafletjs.com/ 2)下载esri-leaflet.js插件,  官网传送:http://esri.github.io/esri-leaflet/ 3)下载heatmap.js插件,  官网传送:https://www.patrick-wied.at/static/heatmapjs/ 也可以直接在此下载,所有插件已压缩打包   https://files.cnblogs.com/files/mengjiax