本文共 1453 字,大约阅读时间需要 4 分钟。
本文将介绍有关于leaflet地图组件在web中的应用
leaflet是一个轻量级的开源js地图组件,适用于移动设备,用法简单性能优越,如果你曾经使用过高德或者百度的地图api的话,相信你可以很轻易的上手更加简单的leaflet
的工作方法和高德百度之类的并不一样,由于leaflet是个开源项目,所以它本身只有地图组件并不提供地图内容,也就是说,我们不需要为了使用leaflet而去注册key。
所以当我们在页面中创建了地图之后,还需要去其他的地图内容提供商(ArcGIS)那里加载地图,有可能需要申请key,当然,在下文里我会给出一个免费又好看的地图内容的。
有关地图的完整api在
html
js
var map = L.map('map').setView([37.002553, 106.890747], 3)
var map = L.map('map', { center: [37.002553, 106.890747], zoom: 3})
上面这两种实现的效果是一样的,都是在id为map的div上创建一个中心为[51, 51],缩放等级为13的地图,那么现在你应该能看到一个没有地图内容的地图组件了。
L.esri.tiledMapLayer({ url: 'http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer'}).addTo(map)
上面的代码会去读取url里提供的地图内容并加载到名字为map的地图组件实例里,更多的内容可以复制上面的url,他们提供了另外几种地图的样式。好了,当你完成了这一步时你应该可以看到一个完整的地图已经被加载出来了。
添加标记点
var marker = L.marker([38.761954, 117.775429]).addTo(map)
添加圆形
var circle = L.circle([38.761954, 117.575429], { color: 'red', fillColor: '#f03', fillOpacity: 0.5, radius: 500}).addTo(map)
添加多边形
var polygon = L.polygon([ [38.561954, 117.675429], [38.561954, 117.475429], [38.361954, 117.375429]]).addTo(map)
你可以为map或者marker之类事件驱动的类上使用on或者off添加或关闭一个事件监听
var popup = L.popup()map.on('click', function (e) { popup .setLatLng(e.latlng) .setContent("你点击了 " + e.latlng.toString()) .openOn(map)})
上述代码将在点击地图时弹出点击位置的信息,其中L.popup()可以初始化一个弹出框。
大体内容就介绍到这里,以下是完整的html代码
leaflet地图测试
转载地址:http://uopxl.baihongyu.com/