Leaflet 笔记(一)入门介绍

今天要介绍的是Leaflet——an open-source javaScript library for mobile-friendly interactive maps,一个用于兼容移动端交互地图的开源JS库。

Leaflet 是一个很容易上手的语言库,即使是初学者的JavaScript开发人员也很容易,它的官网 http://leafletjs.com/ 做得很棒,内容详实,初学者可以在 Tutorials中查看基础示例,快速上手;Docs中有详实的API,使用起来很方便。

Leaflet的官网截图,界面十分美观:

1.介绍Leaflet中两个重要的基础类型:LatLng和Point

Leaflet中有两种表示坐标点的数据结构,一种是最常用的LatLng,另一种是Point。

LatLng是是描述经纬度的坐标类,代表具有一定纬度和经度的地理点。

LatLng有三个属性: lat 纬度(以度为单位),lng 经度(以度为单位),和 alt 海拔高度(米)(可选)

它的生成函数如下使用,第一个参数是维度,第二个是经度:

var latlng = L.latLng(50.5, 30.5);

Point是描述在屏幕上的位置的点,以像素为单位,有两个属性x和y

它的生成函数如下使用:

var point = L.point(200, 300);

两者之间的转换函数(注意大小写)是

latLngToPoint(<LatLnglatlng,<Number> zoom)   和     pointToLatLng(<Pointpoint,<Number> zoom)

这两个函数会根据当前地图的缩放程度(zoom)转换地理点与像素点,返回值分别是Point和latLng。

2.介绍Polygon的使用方式:

Polygon是继承自Polyline的一个类,它的生成函数是:L.polygon(<LatLng[]> latlngs, <Polyline optionsoptions?),

使用方法一:它的参数可以是一个latLng类型的数组,polygon的生成函数就是将这些点依次连接起来,注意这里最后一个点和第一个点是不相同的。

代码示例:

// create a red polygon from an array of LatLng points
var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];
var polygon = L.polygon(latlngs, {color: ‘red‘}).addTo(map);

使用方法二:它的参数可以是一系列latlng数组,第一个数组表示外部形状,其他数组表示外部形状的孔,像甜甜圈一样:

var latlngs = [
  [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
  [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
];

使用方法二:它的参数还可以是一个多维数组来表示MultiPolygon形状,这个功能在画许多个多边形时非常有效,比如说画泰森多边形时:

var latlngs = [
  [ // first polygon
    [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]], // outer ring
    [[37.29, -108.58],[40.71, -108.58],[40.71, -102.50],[37.29, -102.50]] // hole
  ],
  [ // second polygon
    [[41, -111.03],[45, -111.04],[45, -104.05],[41, -104.05]]
  ]
];
时间: 2024-11-05 13:38:38

Leaflet 笔记(一)入门介绍的相关文章

安卓笔记1——入门介绍及拨打电话和发送短信案例

现在开始接触安卓开发.以后后同步发出对应笔记.老规矩,用一张图来介绍今天的内容. 图片看不清的话可以右键新窗口打开. 一.开发工具 · Eclipse + ADT(Android Developer Tools) · Android Studio · SDK (软件开发环境, Android调试工具, 模拟等) 二.SDK目录介绍 · add-ons :(额外开发资料, google地图资源) · build-tools : 编译工具目录 · docs : 离线版开发文档 · extras : 

1、数据结构笔记之一入门基本概念

1.蛤蟆的数据结构笔记之一入门基本概念 最近一段时间一句名言一直徘徊在我的耳畔,并非警示名言,而是老子中的一句平常话,"合抱之木.生于毫末;九层之台.起于累土;千里之行.始于足下;千里之堤.毁于蚁穴".这句初中便能开口套用的熟语,这么多年后还是久久不能行于实践.怪世人太急于成功,还是怪自己过于浮夸? 不管是什么,让我们再一次的从脚下走起. 从哪里走起?汇编?C?操作系统?组成原理?离散数学?形式语言?数理逻辑?还是其他?对比分析良久,最后还是选定了数据结构.因为数据结构的内容不仅是一般

【慕课网】php工程师学习计划之我的学习笔记——01 入门必学web基础 htmlcss基础课程 篇

为了进一步学习PHP,本周我选定了慕课网的PHP工程师学习计划, 从今天2015-07-06 10:24:47开始从头学习:计划本周尽快学习完成本课程,谨此作为笔记. 有个好的学习计划和思路非常非常重要,非常感谢慕课网提供本套学习计划,希望更多地学习平台能提供像这样全面一条龙学习思路清晰地教程. 计划图:链接 我的学习状况:2015-07-06 10:29:46 开始随记: php工程师学习计划笔记——01 入门必学web基础 htmlcss基础课程 篇 入门篇: text-align:cent

Linux入门介绍

Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 Linux的应用 网络服务器 关键任务的应用(金融数据库.大型企业网管环境) 学术机构癿高效能运算任务 手持系统(PDA.手机.导航系统) 个人办公使用 Linux的吉祥物/Logo 企鹅(英文名:Tux),由来:因为Torvalds在小时候被企鹅咬过,因此印象非常深刻 在Linu

CUDA C编程入门-介绍

CUDA C编程入门-介绍 1.1.从图形处理到通用并行计算 在实时.高清3D图形的巨大市场需求的驱动下,可编程的图形处理单元或者GPU发展成拥有巨大计算能力的和非常高的内存带宽的高度并行的.多线程的.多核处理器.如图1和图2所示. 图 1 CPU和GPU每秒的浮点计算次数 图 2 CPU和GPU的内存带宽 在CPU和GPU之间在浮点计算能力上的差异的原因是GPU专做密集型计算和高度并行计算-恰好是图形渲染做的-因此设计成这样,更多的晶体管用于数据处理而不是数据缓存和流控制,如图3所示. 图 3

现代C++学习笔记之一入门篇:智能指针(C++ 11)

原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 在现代 C++ 编程中,标准库包含智能指针,该指针用于确保程序不存在内存和资源泄漏且是异常安全的. 在现代 C++ 中,原始指针仅用于范围有限的小代码块.循环或者性能至关重要且不会混淆所有权的 Helper 函数中. 1 void UseRawPointer() 2 { 3 // Using a raw pointer -- not recommended

Halcon入门介绍

Halcon是德国MvTec公司开发的一套完善的标准的机器视觉算法包. 1.拥有应用广泛的机器视觉集成开发环境-Hdevelop: 2.提供卓越的性能,全面支持多核平台.SSE2和AVX(intel新的指令扩展集),以及GPU加速: 3.支持windows.linux和mac os x操作环境,函数库可用C.C++.C#.VB.net和delphi等编程语言访问: 4.包含1800多个算子的函数库,主要包括:Blob分析,形态学,匹配,测量,识别和立体视觉等: 5.为大量图像获取设备提供接口,保

[Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)

最近在使用Python爬取网页内容时,总是遇到JS临时加载.动态获取网页信息的困难.例如爬取CSDN下载资源评论.搜狐图片中的"原图"等,此时尝试学习Phantomjs和CasperJS来解决这个问题.这第一篇文章当然就是安装过程及入门介绍. 一. 安装Phantomjs 下载地址:http://phantomjs.org/        官网介绍:          PhantomJS is a headless WebKit scriptable with a JavaScript

flask web开发笔记 -- 快速入门

flask web开发笔记 -- 快速入门 初始化 Flask应用需要创建应用实例. Web服务器通过Web Server Gateway Interface (WSGI)协议把从客户端接收到的请求传递给该对象.应用程序实例是Flask类对象,通常创建如下: from flask import Flask app = Flask(__name__) Flask类的构造函数唯一的参数是应用的主模块名或包名,用于确定应用的根目录.对于大多数应用程序,使用Python的__name__变量即可. 路由

DOJO开发: 入门介绍

决定写么这么一个前端框架的系列文章, 还是很需要勇气的. 因为从现在软件开发岗位分工来说, 我一是个标准的后台开发岗, 所以前端的知识(html, css, javascript)还是捉襟见肘的, 所以大家还是多多包涵下, 如果文中有什么问题, 请帮忙指出来. 一般很多后端的同学有这样的需求: 一个人要开发完一个完整的管理系统, 而又没有前端开发资源, 这时候只能一切靠自己了. 嗯, 做一个全栈工程师, 我骄傲!  首先我介绍下我的前端知识体系. 对于html, css, javascript的