Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Mapbox手稿大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我设法通过遵循这个项目让Leaflet与Angular 2和Webpack一起工作.

angular 2 leaflet starter

我可以在“browser.d.ts”中看到配置的类型:

/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />

webpack.config.js定义了一个入口点:

...
entry: {
    'polyfills': './src/polyfills.ts','libs': './src/libs.ts','main': './src/main.ts'
},...

“libs.ts”包含Leaflet模块的导入:

import 'leaflet';

我正在使用Atom作为代码编辑器.它现在识别所有Leaflet类和方法.我现在可以在Angular 2中做这样的事情了:

import {Map,TileLayer} from 'leaflet';
...
this.baseMaps = {
    StreetMap: new TileLayer('mapBox.streets')
};

这是我的问题开始的地方.我正在尝试使用mapBox.js.我做的是我安装了mapBox.js库和打字:

npm install mapBox.js --save
typings install mapBox --save

这就是我被困住的地方.对于我的生活,我无法弄清楚如何做Leaflet设法做的事情.

import 'mapBox';

不行.

ERROR in ./src/libs.ts
Module not found: Error: CAnnot resolve module 'mapBox' in C:\Develop\angular2-webpack-starter\src
 @ ./src/libs.ts 3:0-17

我可以看到“browser.d.ts”有以下内容

/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />
/// <reference path="browser\ambient\mapBox\mapBox.d.ts" />

我想也许MapBox会起作用,因为它扩展了Leaflet库?

看来我基本上可以做这样的事情,这是标准的javascript方式:

this.baseMaps = {
    StreetMap: l.mapBox.tileLayer('mapBox.streets')
};

但不是这个:

this.baseMaps = {
    StreetMap: new TileLayer('mapBox.streets')
};

这显然不起作用:

import {Map,TileLayer} from 'mapBox';

我究竟做错了什么?

您可以使用mapBox.js NPM模块,它将包含您需要的所有内容.

npm install mapBox.js –save

看这个例子.我们使用Webpack进行模块加载,使用TypeScript,您需要为非类型化模块显式导入*.

import * as L from 'mapBox.js';

const map = l.mapBox.map('mapContainer','mapBox.streets');

// do stuff.

大佬总结

以上是大佬教程为你收集整理的Mapbox手稿全部内容,希望文章能够帮你解决Mapbox手稿所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:mapbox