Leafletjs学习教程和相关代码整理
一.Leaflet简介
官网上的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/
小功能效果:
移动和放缩
// disable drag and zoom handlers //禁止移动和放大缩小 map.dragging.disable(); map.touchZoom.disable(); map.doubleClickZoom.disable(); map.scrollWheelZoom.disable(); // disable tap handler, if present. //禁止单击 if (map.tap) map.tap.disable();
单击事件
var popup = new L.popup();
function onMapClick(e) { popup .setLatLng(e.latlng) .setContent("You clicked the map at " + e.latlng.toString()) .openOn(map); } map.on('click', onMapClick);
添加zoom控制,在右下角
var zoomControl = L.control.zoom({
position: 'bottomright'
});
map.addControl(zoomControl);
添加比例尺
L.control.scale().addTo(map);
瓦片图层加载
L.tileLayer('http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}',{
maxZoom: 18,
reuseTiles: true
}).addTo(map);
添加底图(esri-leaflet插件)
需要引入esri-leaflet.js
github:https://github.com/esri/esri-leaflet
百度盘下载:http://pan.baidu.com/s/1nt0S2JR
L.esri.basemapLayer("Streets").addTo(map);//此行可行
//ArcGIS Server Dynamic Map Service, Historic Hurricane Tracks
dynLayer = L.esri.dynamicMapLayer(kaifaqu, {
opacity: 1,
layers: [0, 1]
});
map.setView([30.60, 119.65], 9); //浙江
http://www.cnblogs.com/wangcan/
定位
function onLocationFound(e) {
var radius = e.accuracy / 2;
L.marker(e.latlng).addTo(map)
.bindPopup("You are within " + radius + " meters from this point").openPopup();
L.circle(e.latlng, radius).addTo(map);
}
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
//添加shapefile
function addShapeFile() { map.setView([34.74161249883172, 18.6328125], 2);
var geo = L.geoJson({
features: []
}, {
onEachFeature: function popUp(f, l) {
//console.info(f);
var out = [];
if (f.properties) {
for (var key in f.properties) {
out.push(key + ": " + f.properties[key]); }
l.bindPopup(out.join("<br />"));
}
}
})//.addTo(map); //保存到 图层数组
map_layers.push(geo);
//此处指向shapefile的zip文件即可
var base = 'files/bou1_4m.zip';
shp(base).then(function(data) {
console.info(data);
geo.addData(data);
}); }
关键词:leaflet.js shapefile esri-leaflet
Leafletjs学习教程和相关代码整理的更多相关文章
- AngularJS的学习网站及相关资源整理
学习angularjs的网站及相关资源的整理,会不断更新. angularJs的官网:https://angularjs.org/ API文档:https://docs.angularjs ...
- C#:WebBrowser控件的使用教程及相关问题整理
推荐阅读: C#WebBrowser控件使用教程与技巧收集--苏飞收集 C# WebBrowser强制在本窗口打开,禁止在新窗口打开 C# WebBrowser禁止在新窗口打开,强制在本窗口打开(多种 ...
- 联邦学习 Federated Learning 相关资料整理
本文链接:https://blog.csdn.net/Sinsa110/article/details/90697728代码微众银行+杨强教授团队的联邦学习FATE框架代码:https://githu ...
- listview相关代码整理
虽然listview已经慢慢被替代了, 不过还是整理下 , 留作纪念吧 /** * 获取 listview 实际滚动的距离. [ 相对于listview的第一个项目左上角.] * * @return ...
- Guava 已经学习的代码整理
Guava 已经学习的代码整理 Guava 依赖: compile group: 'com.google.guava', name: 'guava', version: '18.0' 以下是我自己在开 ...
- Tensorflow学习教程------读取数据、建立网络、训练模型,小巧而完整的代码示例
紧接上篇Tensorflow学习教程------tfrecords数据格式生成与读取,本篇将数据读取.建立网络以及模型训练整理成一个小样例,完整代码如下. #coding:utf-8 import t ...
- ASP.NET MVC 5 学习教程:生成的代码详解
原文 ASP.NET MVC 5 学习教程:生成的代码详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...
- IOS开发-OC学习-常用功能代码片段整理
IOS开发-OC学习-常用功能代码片段整理 IOS开发中会频繁用到一些代码段,用来实现一些固定的功能.比如在文本框中输入完后要让键盘收回,这个需要用一个简单的让文本框失去第一响应者的身份来完成.或者是 ...
- LImax服务器框架学习--安装、使用ant工具、生成limax相关代码
一.安装ant ant 是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.在实际软件开发中,有很多地方可以用到ant. 首先现在一个ant安装压缩包, ...
随机推荐
- 学习动态性能表(11)v$latch$v$latch_children
学习动态性能表 第十一篇-(1)-V$LATCH 2007.6.7 Oracle Rdbms应用了各种不同类型的锁定机制,latch即是其中的一种.Latch是用于保护SGA区中共享数据结构的一种串 ...
- 深入理解Spring IOC
转载自 http://www.cnblogs.com/xdp-gacl/p/4249939.html 学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概 ...
- [Project Euler] 来做欧拉项目练习题吧: 题目013
问题描述: Work out the first ten digits of the sum of the following one-hundred 50-digit numbers. 371072 ...
- 把ASM下的HDD VM转换成ARM下Managed Disk的SSD VM
在ASM下,要把HDD的VM转换成SSD的VM步骤非常复杂.需要手工把Disk从普通存储账户复制到高级存储账户.再通过这个Disk创建VM. 目前在有了ASM到ARM的迁移工具,以及Managed D ...
- Day2-VIM(六): 恢复
恢复在VIM里比较简单,不过想要具体恢复到某个时间段很难 就我的经验而言,有时候使用恢复还不如删了重写 这里我们来讲讲恢复.撤销和重复命令的使用 u 撤消上次命令 U 恢复整行 ctrl+r 重做 . ...
- 关于移动端的一些tip
移动端的一些tip 开发相关 关于viewport <meta name="viewport" content="name=value,name=value&quo ...
- install命令和cp命令的区别
基本上,在Makefile里会用到install,其他地方会用cp命令. 它们完成同样的任务——拷贝文件,它们之间的区别主要如下: 1.最重要的一点,如果目标文件存在,cp会先清空文件后往里写入新文件 ...
- 使用script转储终端命令输出,或者录制并播放session的内容
摘自:http://leohot.blog.163.com/blog/static/1348656022012729113658473/ 注意: 1. 启动script时没有指定文件名,它会自动记录到 ...
- [置顶]
strcpy()与strncpy()的区别
头文件:#include <string.h> strcpy() 函数用来复制字符串,其原型为: char *strcpy(char *dest, const char *src); [参 ...
- iOS按home键后程序的状态变化
iOS 的应用里的几种状态: active: 应用在前台正常运行 background: 应用在后台,并且在执行代码. inactive: 这个状态是应用从一个状态向另一个状态的过渡 suspende ...