麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Leaflet笔记(7)在地图上绘制弹出框(Popup)

本文介绍在Leaflet的地图上绘制弹出框(Popup)的方法。什么是Popup?就是类似下面的效果。

可以看到在前文绘制的Marker上位置增加了一个弹出的提示框。这个效果在Leaflet中也可以很简单的实现。下面我们在Marker、Circle、Polygon中都添加一个Popup效果。代码如下

Leaflet添加Popup

var m = L.map('map-container').setView([36.52,120.31], 7);

var tileAddress = 'https://api.mapbox.com/styles/v1/yqcim/';
tileAddress += 'cizh1ma3400ez2so5x1anhuzo/tiles/256/{z}/{x}/{y}';
tileAddress += '?access_token=pk.eyJ1IjoieXFjaW0iLCJhIjoiY2l6ZmhnZjEx';
tileAddress += 'MDBhajJ4cGxnNGN5MnhpdCJ9.pcZtdfk8mSFboCdwqkvW6g';

var attribution = 'Map data &copy; <a href="http://openstreetmap.org">';
attribution += 'OpenStreetMap</a> contributors, '
attribution += '<a href="http://creativecommons.org/licenses/by-sa/2.0/">';
attribution += 'CC-BY-SA</a>, ';
attribution += 'Imagery © <a href="http://mapbox.com">Mapbox</a>';

L.tileLayer(tileAddress, {
  maxZoom: 18,
  attribution: attribution,
  id: 'mapbox.streets'
}).addTo(m);

// add a marker
var marker = L.marker([36.52,120.31]).addTo(m);    
// popup
marker.bindPopup('这是个Marker').openPopup();

// add a circle
var circle = L.circle([36.52,120.31], {
  color: 'green',
  fillColor: '#f03',
  fillOpacity: 0.5,
  radius: 10000
}).addTo(m);
// popup
circle.bindPopup('我是个圆');

// add a polygon
var polygon = L.polygon([
  [36, 121],
  [37, 121],
  [36.5, 122],
  [36.5, 122.2]
]).addTo(m);
// popup
polygon.bindPopup('俺是个多边形');

这里使用的是bindPopup方法为第个图形、Marker绑定了一个Popup,使用这个方法会自动为被绑定的对象添加click事件,使用鼠标点击都能触发这个Popup显示出来。

那为什么Marker上的Popup能够自动显示出来呢?仔细观察,我们可以发现在Marker的绑定函数后又调用了openPopup方法来将Popup显示出来。

是不是发现了什么?是的,Leaflet的API设计和jQuery很像,都是链式的调用方法,非常优雅。

所有代码

leafletjs/note-6.html at master · sailor103/leafletjs

麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。
微博关注
手机阅读
赞赏支持
手机阅读
微信捐助麻辣GIS
微信打赏
支付宝捐助麻辣GIS
支付宝打赏

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

如您有疑问,可在文末留言,或到麻辣GIS QQ群中提问。

QQ群(一):291616564 加入QQ群

QQ群(二):166408035 加入QQ群

QQ群(三):627853279 加入QQ群

QQ群(四):436386604 加入QQ群

QQ群(五):606176554 加入QQ群

QQ群(六):946178380 加入QQ群

QQ群(七):861271808 加入QQ群

新疆互助群:910717627 加入QQ群

微信公众号:malagis,扫描右边二维码直接关注。

发表评论