leaflet + webpack + typescript

自从学了typescript后,就想将以后的项目全部换成typescript来开发了,首先从leaflet开始,在官网的例子中,都是用UMD的方式来引入leaflet的,为了以后能更快速的创建leaflet项目,项目中主要使用leafletwebpacktypescript来集成。之前介绍webpack的博文有好几篇了,webpack就简单带过了,主要以集成typescript为主。

webpack

对于初始化的webpack工程项目,可以直接使用我github上的工程,该工程已经配置好了相关的插件和loaders,并且也引入了typescript。直接直接下来就可以了。

leaflet安装

要使用leaflet,首先需要对其进行安装。命令如下所示:

npm i leaflet

由于项目中是使用typescript进行开发,所以需要引入leaflet的声明文件。如下所示:

npm install @types/leaflet --save-d

创建地图

安装好leaflet相关的依赖文件后,就要开始进行编码了,首先创建一个LMap的文件,用于编写地图相关的代码。如下所示:

import {Map,TileLayer} from 'leaflet'
export default class LMap {
    constructor(target:string){
        //创建地图
        var map:Map = new Map(target);
        map.setView([51.505, -0.09], 13);
        var accessToken:string = '自已申请accessToken';
        var url:string = 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=' + accessToken;
        //创建切片图层
        var titleLayer:TileLayer = new TileLayer(url,{
            maxZoom: 18,
            id: 'mapbox/streets-v11',
            tileSize: 512,
            zoomOffset: -1,
            accessToken:accessToken
        })
        //添加切片图层
        map.addLayer(titleLayer)
    }
}

将需要使用的类通过import来引入,如import {Map,TileLayer} from 'leaflet'。这里主要是引入了MapTileLayer类。然后再创建具体的对象来添加创建地图和添加对象。
然后在入口文件index.js文件中引入LMap。如下所示:

import './../css/index.css'
import 'leaflet/dist/leaflet.css'
import LMap from './map/map'
(function (){
    let map:LMap = new LMap('map')
})()

注意:需要引入 leafletcss文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、概念 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bun...
    Timmy小石匠阅读 2,166评论 0 29
  • 本项目基于 入门 Webpack,看这篇就够了创建。本例程通过从头构建一个基于npm管理的前端项目,一步步的让读者...
    尤利西斯U阅读 2,955评论 0 8
  • 作者:小 boy (沪江前端开发工程师)本文原创,转载请注明作者及出处。原文地址:https://www.smas...
    iKcamp阅读 2,774评论 0 18
  • 打卡日期:2019年2月28日 90天打卡累计天数:35/90 #宣言:和无限一起快乐成长# 孩子第二个30天目标...
    无限妈妈阅读 137评论 0 1
  • 好景不长,因为起跑速度太快了,马柯馨很快就有点体力不支了,额头上布满了汗珠,速度也越来越慢了。那个位居第二...
    19cbfc855549阅读 301评论 0 3