Leaflet学习教程+笔记(Mars2D)

Leaflet学习(Mars2D)

一 快速开始

中文教程–小白必备

中文API文档–学会查阅文档

准备工作-引入文件

 <link rel="stylesheet" href="https://cdn.bootcss.com/leaflet/1.2.0/leaflet.css" />
 <script src="https://cdn.bootcss.com/leaflet/1.2.0/leaflet.js"></script>

初始化页面–准备好一个容器

 <div id="mapid"></div>
  * {
      margin: 0;
      padding: 0;
    }

    #mapid {
      height: 100vh;
    }

创建一个地图–两种方式

var map = L.map('mapid').setView([27.550894, 121.529732], 4);   //坐标和缩放尺寸

第二种方式

  var map = L.map('mapid', {
    center: [27.550894, 121.529732],
    zoom: 4
  });

地图已经出来了,只是还没有皮肤.快给你的地图设置一个瓦片(底图)图层吧 !

L.tileLayer("http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}").addTo(map);

效果已经出来喽 接下来才是重头戏 !

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-olp9VRcU-1623392190080)(2D.assets/image-20210610195539851.png)]

二 开始入门

标注点和线

首先准备好一个地图

 var map = L.map('mapid').setView([31.124451, 113.345322], 9);
    L.tileLayer("http://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}").addTo(map);

让我们标记一个点吧 !

var marker = L.marker([31.5, 113.09]).addTo(map);

效果太感动了!

在这里插入图片描述

线是由多个坐标连接起来的哟,所以是一个二维数组

	var latlngs = [
      [45.51, -122.68],
      [37.77, -122.43],
      [34.04, -118.2]
    ];
    var polyline = L.polyline(latlngs, {
      color: 'red'
    }).addTo(map);
    
    map.fitBounds(polyline.getBounds());// 缩放地图到折线所在区域

在这里插入图片描述

圆和多边形

接着我们加一个圆试试

 var circle = L.circle([31, 113], 4000, {
    color: 'red',
    fillColor: '#f03',
    fillOpacity: 0.5
}).addTo(map);

啊~~~简单 !
在这里插入图片描述

多边形也就是这样而已

var polygon = L.polygon([
    [31.509, 113.08],
    [31, 113.06],
    [31.51, 112]
]).addTo(map);

so easy !

在这里插入图片描述

三 自定义图标标记

想要自定义标记点图片咋整捏?

var greenIcon = L.icon({ //定义了一个图标 greenIcon
      iconUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-red.png', //图片地址
      shadowUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-shadow.png', //阴影图片地址
      iconSize: [38, 95], //图片的大小
      shadowSize: [50, 64], //阴影图片大小
      iconAnchor: [22, 94], //图片对齐偏移
      shadowAnchor: [4, 62], //阴影图片对齐偏移
    });		//可以不设置阴影图片和相关属性

定义好了 ,咱来用他创建个点看看吧

 L.marker([31.5, 113.09], {icon: greenIcon}).addTo(map);  //greenIcon是刚才定义的图标相关属性

嘿嘿 , 有点好看唉 !

在这里插入图片描述

如果要频繁定义图标的话推荐使用图标类,咋整?

		var LeafIcon = L.Icon.extend({
        options: { //定义了一个图标类
        shadowUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-shadow.png',
        iconSize: [38, 95],   //注意,这里没设置图片
        shadowSize: [50, 64],
        iconAnchor: [22, 94],
        shadowAnchor: [4, 62],
        popupAnchor: [-3, -76]
      }

定义了类当然还不够 ! 通过new构造实例对象,给上图片 ! 好了,一个图标就定义完成了!

	var greenIcon = new LeafIcon({
      iconUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-green.png'
    });
    var redIcon = new LeafIcon({
      iconUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-red.png'
    });
    var orangeIcon = new LeafIcon({
      iconUrl: 'http://mars2d.cn/forleaflet/docs/images/leaf-orange.png'
    });

老规矩了,绘点,给图标,显示在地图上

	L.marker([31.5, 113.09], {		//这里格式有点问题,不碍事,往上翻创建点你们都懂的
      icon: greenIcon	
    }).addTo(map);
    L.marker([31, 113.09], {
      icon: redIcon
    }).addTo(map);
    L.marker([31.5, 112.09], {
      icon: orangeIcon
    }).addTo(map);
  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Leaflet是一个基于Web的交互式地图库,Geoserver是一个开源的地理空间数据服务器,PostGIS是一个基于PostgreSQL的地理空间数据库扩展。 在使用Leaflet、Geoserver和PostGIS来构建Web GIS应用程序时,通常的工作流程如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver中发布的Web服务,并在Web页面上呈现地图。 具体步骤如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 首先,需要安装PostgreSQL和PostGIS扩展。然后,在PostgreSQL数据库中创建一个新的数据库,并在该数据库中启用PostGIS扩展。接下来,使用QGIS等GIS软件来创建或导入地理空间数据,并将其保存为PostGIS支持的格式(例如Shapefile)。最后,使用PostgreSQL客户端工具(例如pgAdmin)将地理空间数据加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 打开Geoserver的Web界面,在数据存储中添加新的PostGIS数据库,并配置数据库连接参数。然后,在Geoserver中创建工作区和数据图层,并将其发布为Web服务。在此过程中,可以选择不同的发布格式(例如WMS、WFS等)和地图样式(例如SLD文件)。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver中发布的Web服务,并在Web页面上呈现地图。 在HTML页面中引入Leaflet库和Leaflet插件(例如Leaflet.markercluster)。然后,在JavaScript代码中编写Leaflet地图对象,并使用Ajax请求访问Geoserver中发布的Web服务。最后,将地图对象添加到HTML页面中,以呈现交互式地图。 总之,Leaflet、Geoserver和PostGIS可以一起使用来构建功能强大的Web GIS应用程序,可以实现从数据管理到地图呈现的全流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值