目录

LeafletJS - 入门( Getting Started)

什么是Leaflet.js

Leaflet.js是一个开源库,使用它我们可以部署简单,交互式,轻量级的Web地图。

  • Leaflet JavaScript库允许您使用图层,WMS,标记,弹出窗口,矢量图层(折线,多边形,圆形等),图像叠加层和GeoJSON等图层。

  • 您可以通过拖动地图,缩放(通过双击或滚轮滚动),使用键盘,使用事件处理以及拖动标记来与Leaflet地图进行交互。

  • Leaflet支持浏览器,如桌面上的Chrome,Firefox,Safari 5 +,Opera 12 +,IE 7-11,以及Safari,Android,Chrome,Firefox等手机浏览器。

在网页上加载地图的步骤

按照以下步骤在您的网页上加载地图 -

第1步:创建HTML页面

创建一个带有headbody标签的基本HTML页面,如下所示 -

<!DOCTYPE html>
<html>
   <head>
   </head>
   <body>
      ...........
   </body>
</html>

第2步:加载Leaflet CSS脚本

在示例中包含Leaflet CSS脚本 -

<head>
   <link rel = "stylesheet" href = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" />
</head>

第3步:加载传单脚本

使用脚本标记加载或包含Leaflet API -

<head>
   <script src = "http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
</head>

第4步:创建容器

要保存地图,我们必须创建一个容器元素。 通常,

标签(通用容器)用于此目的。

创建容器元素并定义其尺寸 -

<div id = "sample" style = "width:900px; height:580px;"></div>

第5步:映射选项

Leaflet提供了多种选项,例如类型控制选项,交互选项,地图状态选项,动画选项等。通过设置这些值,我们可以根据需要自定义地图。

创建一个mapOptions对象(它就像文字一样创建)并设置选项中心和缩放的值,其中

  • center - 作为此选项的值,您需要传递一个LatLng对象,指定我们想要使地图居中的位置。 (只需指定[]括号内的纬度和经度值)

  • zoom - 作为此选项的值,您需要传递一个表示地图缩放级别的整数,如下所示。

var mapOptions = {
   center: [17.385044, 78.486671],
   zoom: 10
}

第6步:创建地图对象

使用Leaflet API的Map类,您可以在页面上创建地图。 您可以通过实例化Leaflet API的调用Map来创建地图对象。 在实例化此类时,您需要传递两个参数 -

  • 作为此选项的参数,您需要传递表示DOM id的String变量或

    元素的实例。
    这里,
    元素是一个用于保存地图的HTML容器。
  • 带有地图选项的可选对象文字。

通过传递上一步中创建的

元素和mapOptions对象的id来创建Map对象。
var map = new L.map('map', mapOptions);

第7步:创建图层对象

您可以通过实例化TileLayer类来加载和显示各种类型的地图(切片图层)。 在实例化它时,您需要以String变量的形式传递一个URL模板,该模板从服务提供者处请求所需的tile层(map)。

创建切片图层对象,如下所示。

var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');

这里我们使用了openstreetmap

第8步:向地图添加图层

最后使用addlayer()方法将上一步中创建的图层添加到地图对象,如下所示。

map.addLayer(layer);

例子 (Example)

以下示例显示如何加载海得拉巴城市的open street map ,其缩放值为10。

<!DOCTYPE html>
<html>
   <head>
      <title>Leaflet sample</title>
      <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>
   </head>
   <body>
      <div id = "map" style = "width: 900px; height: 580px"></div>
      <script>
         // Creating map options
         var mapOptions = {
            center: [17.385044, 78.486671],
            zoom: 10
         }
         // Creating a map object
         var map = new L.map('map', mapOptions);
         // Creating a Layer object
         var layer = new L.TileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png');
         // Adding layer to the map
         map.addLayer(layer);
      </script>
   </body>
</html>

它生成以下输出 -

打开街道地图

宣传单地图提供商

就像open street map ,您可以加载各种服务提供商的层,例如Open Topo,Thunder forest,Hydda,ESRI,Open weather,NASA GIBS等。为此,您需要在创建TileLayer时传递各自的URL宾语

var layer = new L.TileLayer('URL of the required map');

下表列出了Openstreetmap提供的URL的URL及其各自的示例映射。

地图类型 网址和输出
Mapnik

http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png

地图提供商

Black And White

http://{s}.tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png

黑白地图

DE

http://{s}.tile.openstreetmap.de/tiles/osmde/{z}/{x}/ {y}.png

DE

France

http://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png

法国

Hot

http://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png

热

BZH

http://tile.openstreetmap.bzh/br/{z}/{x}/{y}.png

BZH

↑回到顶部↑
WIKI教程 @2018