一.Leaflet简介

官方网站:http://leafletjs.com/

官网上的api和例子大家多看看,多学习学习。

Lefalet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的 JavaScript 库。它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,虽然代码仅有 31 KB,但它具有开发人员开发在线地图的大部分功能。

Lefalet 设计坚持简便、高性能和可用性好的思想,在所有主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问。支持插件扩展,有一个友好、易于使用的API文档和一个简单的、可读的源代码。

国外有个MapBox.js也加入了Leaflet的特性和功能,所以有时也可以参考下,MapBox的的文档和例子。

API:https://www.mapbox.com/mapbox.js/api/v1.6.2/

Example:https://www.mapbox.com/mapbox.js/example/v1.0.0/

插件:https://www.mapbox.com/mapbox.js/plugins/

小功能效果:

移动和放缩

  1. // disable drag and zoom handlers
  2.  
  3. //禁止移动和放大缩小
  4.  
  5. map.dragging.disable();
  6.  
  7. map.touchZoom.disable();
  8.  
  9. map.doubleClickZoom.disable();
  10.  
  11. map.scrollWheelZoom.disable();
  12.  
  13. // disable tap handler, if present.
  14.  
  15. //禁止单击
  16.  
  17. if (map.tap) map.tap.disable();

单击事件

  1. var popup = new L.popup();
  2. function onMapClick(e) {
  3.  
  4. popup
  5.  
  6. .setLatLng(e.latlng)
  7.  
  8. .setContent("You clicked the map at " + e.latlng.toString())
  9.  
  10. .openOn(map);
  11.  
  12. }
  13.  
  14. map.on('click', onMapClick);

添加zoom控制,在右下角

  1. var zoomControl = L.control.zoom({
  2.  
  3. position: 'bottomright'
  4.  
  5. });
  6.  
  7. map.addControl(zoomControl);

添加比例尺

  1. L.control.scale().addTo(map);

瓦片图层加载

  1. L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}',{
  2.  
  3. maxZoom: 18,
  4.  
  5. reuseTiles: true
  6.  
  7. }).addTo(map);

添加底图(esri-leaflet插件)

需要引入esri-leaflet.js

github:https://github.com/esri/esri-leaflet

百度盘下载:http://pan.baidu.com/s/1nt0S2JR

  1. L.esri.basemapLayer("Streets").addTo(map);//此行可行
  2.  
  3. //ArcGIS Server Dynamic Map Service, Historic Hurricane Tracks
  4.  
  5. dynLayer = L.esri.dynamicMapLayer(kaifaqu, {
  6.  
  7. opacity: 1,
  8.  
  9. layers: [0, 1]
  10.  
  11. });
  12.  
  13. map.setView([30.60, 119.65], 9); //浙江
    http://www.cnblogs.com/wangcan/

定位

  1. function onLocationFound(e) {
  2.  
  3. var radius = e.accuracy / 2;
  4.  
  5. L.marker(e.latlng).addTo(map)
  6.  
  7. .bindPopup("You are within " + radius + " meters from this point").openPopup();
  8.  
  9. L.circle(e.latlng, radius).addTo(map);
  10.  
  11. }
  12.  
  13. map.on('locationfound', onLocationFound);

添加shapefile

来自(http://www.cnblogs.com/wangcan/

需要引入shapefile.js

github:https://github.com/calvinmetcalf/shapefile-js

百度盘(shp.min.js下载后引入即可):http://pan.baidu.com/s/1hq5MuDe

  1. //添加shapefile
  2. function addShapeFile() {
  3.  
  4. map.setView([34.74161249883172, 18.6328125], 2);
  5. var geo = L.geoJson({
  6. features: []
  7. }, {
  8. onEachFeature: function popUp(f, l) {
  9. //console.info(f);
  10. var out = [];
  11. if (f.properties) {
  12. for (var key in f.properties) {
  13. out.push(key + ": " + f.properties[key]);
  14.  
  15. }
  16. l.bindPopup(out.join("<br />"));
  17. }
  18. }
  19. })//.addTo(map);
  20.  
  21. //保存到 图层数组
  22. map_layers.push(geo);
  23. //此处指向shapefile的zip文件即可
  24. var base = 'files/bou1_4m.zip';
  25. shp(base).then(function(data) {
  26. console.info(data);
  27. geo.addData(data);
  28. });
  29.  
  30. }

关键词:leaflet.js shapefile esri-leaflet

Leafletjs学习教程和相关代码整理的更多相关文章

  1. AngularJS的学习网站及相关资源整理

    学习angularjs的网站及相关资源的整理,会不断更新. angularJs的官网:https://angularjs.org/       API文档:https://docs.angularjs ...

  2. C#:WebBrowser控件的使用教程及相关问题整理

    推荐阅读: C#WebBrowser控件使用教程与技巧收集--苏飞收集 C# WebBrowser强制在本窗口打开,禁止在新窗口打开 C# WebBrowser禁止在新窗口打开,强制在本窗口打开(多种 ...

  3. 联邦学习 Federated Learning 相关资料整理

    本文链接:https://blog.csdn.net/Sinsa110/article/details/90697728代码微众银行+杨强教授团队的联邦学习FATE框架代码:https://githu ...

  4. listview相关代码整理

    虽然listview已经慢慢被替代了,  不过还是整理下 , 留作纪念吧 /** * 获取 listview 实际滚动的距离. [ 相对于listview的第一个项目左上角.] * * @return ...

  5. Guava 已经学习的代码整理

    Guava 已经学习的代码整理 Guava 依赖: compile group: 'com.google.guava', name: 'guava', version: '18.0' 以下是我自己在开 ...

  6. Tensorflow学习教程------读取数据、建立网络、训练模型,小巧而完整的代码示例

    紧接上篇Tensorflow学习教程------tfrecords数据格式生成与读取,本篇将数据读取.建立网络以及模型训练整理成一个小样例,完整代码如下. #coding:utf-8 import t ...

  7. ASP.NET MVC 5 学习教程:生成的代码详解

    原文 ASP.NET MVC 5 学习教程:生成的代码详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...

  8. IOS开发-OC学习-常用功能代码片段整理

    IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...

  9. LImax服务器框架学习--安装、使用ant工具、生成limax相关代码

    一.安装ant ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 首先现在一个ant安装压缩包, ...

随机推荐

  1. (C#)Windows Shell 外壳编程系列3 - 上下文菜单(iContextMenu)(一)右键菜单

    (本系列文章由柠檬的(lc_mtt)原创,转载请注明出处,谢谢-) 接上一节:(C#)Windows Shell 外壳编程系列2 - 解释,从“桌面”开始展开 这里解释上一节中获取名称的方法 GetD ...

  2. BZOJ1116:[POI2008]CLO

    浅谈并查集:https://www.cnblogs.com/AKMer/p/10360090.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php? ...

  3. MySQL insert插入

    使用INSERT语句插入新数据 语法:INSERT [INTO] tbl_name [(col_name,...)] VALUES (pression,...),…      INSERT [INTO ...

  4. Java基础--HashCode

    如果一个类的对象要用做hashMap的key,那么一定要注意覆盖该类的equals和hashCode方法. equals()是基类Object的方法,用于判断对象是否有相同地址及是否为同一对象 pub ...

  5. 查看osdmap命令

    标签(空格分隔): ceph,ceph运维,osdmap 方法一: 最直接,简单的命令: [root@node3 ~]# ceph osd tree ID CLASS WEIGHT TYPE NAME ...

  6. UE4流关卡

    转自:http://blog.ch-wind.com/ue4-level-streaming/ 流关卡可以使得关卡内容只在玩家“需要”的时候才加载,在很多游戏中都有使用这个技术. 当前UE4版本4.1 ...

  7. CreateThread demo

    #include "stdafx.h"#include<windows.h>#include<strsafe.h>//win2003SDK必须安装 要不无此 ...

  8. 使用setTimeout 来实现setInterval的效果

    直接上代码,实现的核心就是在延时的情况下递归的调用自己, x=0 y=-1 function countMin( ) { y=y+1 document.displayMin.displayBox.va ...

  9. 问题:C#控制台;结果:C#限制程序只能运行一個实例 (防多开)

    C# Console类的具体用法 作者: 字体:[增加 减小] 类型:转载 时间:2013-03-08 这篇文章主要介绍C# Console类的具体用法,需要的朋友可以参考下   Console.Wr ...

  10. tar命令解压jdk.tar.gz包 报错 gzip: stdin: not in gzip format

    转自:https://blog.csdn.net/LL_zhuo/article/details/44173355 遇到和这篇博文一样的问题了.用wget 从oracle官网下载jdk, http:/ ...