leaflet简单操作demo
今天大意了解了一下leaflet这个开源的 JavaScript 库,很强大。
结合腾讯地图,做了个简单的demo,作为一个学习的起点吧(各种API结合自身的业务)

<!DOCTYPE html>
<html>
<head>
<title>map</title>
</head>
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<style type="text/css">
/*确定map容器的高度,宽度*/
#map { height: 640px; width: 320px; }
</style>
<body>
<!-- 地图容器 -->
<div id="map"></div>
<script type="text/javascript">
//加载gis地图
var southWest = [22.53491493,113.96075249],//地图西南点坐标
northEast = [22.5587753,113.99362564],//地图东北点坐标
bounds = L.latLngBounds(southWest, northEast);//地图边界 //####设置地图设置地图中心和缩放级别
var map = L.map('map',{
zoomControl: false, //隐藏默认缩放按钮
attributionControl: false,//隐藏copyright
//center: new L.LatLng("22.54185077705975", "113.9806441116333"),//加载地图的中心点
//zoom: "16",//默认显示层级
maxBounds: bounds,//地图的边界
maxZoom:"20",//最大显示层级
minZoom:"1",//最小显示层级
attribution: 'Map data © <a href="http://www.cnblogs.com/liugx/p/7651379.html">szliugx</a>',//添加copyright,无效(已经禁用)
}).setView(["22.54185077705975", "113.9806441116333"], 16);//默认显示16层级,设置默认加载中心点经纬度 //####添加标注、圆形、多边形
//添加标注
var marker = L.marker([22.54383, 113.98049]).addTo(map);
marker.bindPopup("<b>Hello world!</b><br>这是一个湖").openPopup(); //#####添加圆形
var circle = L.circle([22.5363, 113.98069], 50, {
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5
}).addTo(map);
//circle.bindPopup("这是圈圈").openPopup(); // //#####添加多边形
var polygon = L.polygon([
[22.54784, 113.97779],
[22.54685, 113.98079],
[22.54649, 113.97899]
]).addTo(map);
//polygon.bindPopup("土豪聚集地").openPopup();; //#####添加弹出气泡
//xxx.bindPopup("xxx").openPopup();; //#####处理事件
function onMapClick(e) {
alert("You clicked the map at " + e.latlng);
}
map.on('click', onMapClick); L.TileLayer.WebDogTileLayer = L.TileLayer.extend({
getTileUrl: function (tilePoint) {
var urlArgs,
getUrlArgs = this.options.getUrlArgs; if (getUrlArgs) {
var urlArgs = getUrlArgs(tilePoint);
} else {
urlArgs = {
z: tilePoint.z,
x: tilePoint.x,
y: tilePoint.y
};
} return L.Util.template(this._url, L.extend(urlArgs, this.options, {s: this._getSubdomain(tilePoint)}));
}
}); L.tileLayer.webdogTileLayer = function (url, options) {
return new L.TileLayer.WebDogTileLayer(url, options);
}; var url = 'http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0';
options = {
//分布式域名前缀标识
subdomains: '012',
//重写腾讯地图的瓦片图规则
getUrlArgs: function (tilePoint) {
return {
z: tilePoint.z,
x: tilePoint.x,
y: Math.pow(2, tilePoint.z) - 1 - tilePoint.y
};
}
};
//L.tileLayer就是矢量瓦片底图,用对应的URL上找对应的z,y,x。而s是分布式服务器快速选取。最后,tileLayer图层要addTo(map)加载在地图观察器上。
L.tileLayer.webdogTileLayer(url, options).addTo(map); </script>
</body>
</html>
leaflet简单操作demo的更多相关文章
- ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)
如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...
- Java-IO读写文件简单操作2
承接Java-IO读写文件简单操作,这里再次写个小demo巩固一下知识点. 代码文件:demo.java package com.test.demo; import java.io.*; public ...
- 入门Leaflet之小Demo
入门Leaflet之小Demo 写在前面 ---- WebGIS开发基础之Leaflet GIS基本概念:GIS.Map.Layer.Feature.Geometry.Symbol.Data(Poin ...
- Apache Derby-02通过IJ简单操作DERBY
上回说到了Derby的历史以及需要准备的环境,这章将为大家介绍Apache Derby的简单操作 1.配置Derby环境 1.1去官网下载Derby_BIN并解压在文件夹中 http://mirror ...
- x01.MagicCube: 简单操作
看最强大脑,发现魔方还是比较好玩的,便买了一个,对照七步还原法,居然也能成功还原. 为什么不写一个魔方程序呢?在网上找了找,略作修改,进行简单操作,还是不错的,其操作代码如下: protected o ...
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- GitHub学习心得之 简单操作
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 本文对Github的基本操作进行了总结, 主要基于以下文章: http://gitre ...
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- Linux 中 Vi 编辑器的简单操作
Linux 中 Vi 编辑器的简单操作 Vi 编辑器一共有3种模式:命名模式(默认),尾行模式,编辑模式.3种模式彼此需要切换. 一.进入 Vi 编辑器的的命令 vi filename //打开或新 ...
随机推荐
- python 黑客书籍 ——扫描+暴力破解
https://legacy.gitbook.com/book/germey/net-security/details 网络安全 介绍 构建一个端口扫描器 利用Pexpect模拟SSH连接 利用Pxs ...
- JS种正则表达式的基础用法
基础语法 元字符 常用元字符 含义 . 匹配除换行符以外的任意字符 \w 匹配字母数字或下划线 \W 匹配不是字母.数字.下划线的字符 \d 匹配数字,相当于[0-9] \D 匹配不是数字的字符 \s ...
- [转载]Java导出Excel
一.需求介绍 当前B/S模式已成为应用开发的主流,而在开发企业办公系统的过程中,常常有客户这样子要求:把系统数据库中的数据导出到Excel,用户查看报表时直接用Excel打开.或者是:用户已经习惯用E ...
- MoreEffectiveC++Item35(异常)(条款9-15)
条款9 使用析构函数防止内存泄漏 条款10 在构造函数中防止内存泄漏 条款11 禁止异常信息传递到析构函数外 条款12 理解"抛出一个异常''与"传递一个参数"或调用一个 ...
- c# JScriptProvider包装
using System; using System.CodeDom.Compiler; using System.Reflection; using System.Web.UI; using Mic ...
- Eclipse下配置Maven
1.修改maven根目录下的conf/setting.xml文件,主要修改localRepository属性,用于管理maven下载的jar文件存放的位置. 2.修改eclipse的maven配置,w ...
- The Interview Outline
************************* 一.基础部分************************* 1.1 常用数据类型 - 字符串 split/strip/replace/find/ ...
- (转)MapReduce Design Patterns(chapter 6 (part 1))(十一)
Chapter 6. Metapatterns 这种模式不是解决某个问题的,而是处理模式的关系的.可以理解为“模式的模式”.首先讨论的是job链,把几个模式联合起来解决复杂的,有多个阶段要处理的问题. ...
- 开源一款ftp软件——filezilla
filezilla是一款高性能ftp/sftp文件工具,关于它的具体的介绍可参见其官网:https://www.filezilla.cn/.其原作者是Tim Kosse (tim.kosse@file ...
- 解决 src/MD2.c:31:20: fatal error: Python.h: No such file or directory安装包错误
在linux命令行安装包时报错 src/MD2.c:31:20: fatal error: Python.h: No such file or directory 原因:缺少了python的dev 解 ...