- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
通过关注这个项目,我设法让 Leaflet 与 Angular 2 和 Webpack 一起工作。
我可以看到在“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';
我做错了什么?
最佳答案
对于像我这样只想在他们的项目中显示 map 的人来说,我是这样得到它的。主要基于 Angular2 Mapbox-gl Starter .
将 Mapbox-gl 添加到 Angular 2 - Webpack 和 Typescript
安装所需的包...npm install mapbox-gl --save
npm install @types/mapbox-gl --save
npm install @types/geojson --save
将东西添加到 webpack...
module.exports = function(options) {
return {
resolve: {
alias: {
'mapbox-gl': '../node_modules/mapbox-gl/dist/mapbox-gl.js'
}
},
module: {
postLoaders: [
{
include: /node_modules\/mapbox-gl-shaders/,
loader: 'transform',
query: 'brfs'
}
]
}
}
}
添加一个 map.service.ts(出于某种原因我不得不在导入中使用完整的相对路径)...
import { Injectable } from '@angular/core';
import * as mapboxgl from '../../../../node_modules/mapbox-gl/dist/mapbox-gl.js';
import { Map } from '../../../../node_modules/mapbox-gl/dist/mapbox-gl.js';
@Injectable()
export class MapService {
map: Map<any, any>;
constructor() {
(mapboxgl as any).accessToken = 'YOUR_MAPBOX_TOKEN_HERE';
}
}
将 map 添加到您的组件...
import { Component } from '@angular/core';
import { MapService } from '../../api/resources/map.service';
import { Map } from '../../../../node_modules/mapbox-gl/dist/mapbox-gl.js';
@Component({
selector: 'my-component',
styles: [ require('./my-component.component.less') ],
template: require('./my-component.component.html'),
providers: [ MapService ]
})
export class MyComponentComponent {
constructor(private mapService: MapService) { }
ngOnInit() {
let map = new Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v9',
zoom: 5,
center: [-78.880453, 42.897852]
});
this.mapService.map = map;
}
}
将 map div 添加到您的 html...
// my-component.component.html
<div id="map" class="mapboxgl-map"></div>
对于样式,我使用 LESS
,所以我在那里导入了 mapbox 样式...
// my-component.component.less
@import (less) '../../../../node_modules/mapbox-gl/dist/mapbox-gl.css';
关于typescript - Mapbox typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35931380/
刚刚通过 cocoapods 安装了 MapboxGL。我在我的 ViewController 中初始化它,就像给出的示例一样: @IBOutlet weak var mapViewWrapper:
有没有办法更改mapbox-gl-js图标图像的颜色? 取自https://www.mapbox.com/mapbox-gl-js/example/geojson-markers/的代码不会将标记颜色
我正在重写来自 Mapbox.js 的路线规划 Web 应用程序至 Mapbox GL JS图书馆。 几乎所有功能都已实现,但由于 的滞后、不流畅的动画和普遍的缓慢,它几乎无法使用。 map 层 .
我的问题是,如何从 MapBox 服务获取指定路线的海拔剖面图。 在输入中,我们将路径/路线作为坐标数组(纬度、经度)。作为结果,我们想要获得坐标对的数组 - 高程。 如果高程数据的分辨率高于提供的路
如何检查 map 上是否显示了 Mapbox 栅格图层? 我的目标是停止加载动画。我知道我可以检查 map 本身是否准备就绪。 map.on('ready', someFunction) 除了针对特定
https://codepen.io/m12n/pen/XWNRZMg?editors=0010 mapboxgl.accessToken = "pk.eyJ1IjoiaW50ZWxsaWdlbm
我想在我的 map 上添加一个自定义标记。我正在使用 mapbox gl 脚本。 我发现与此主题相关的唯一文档是这个 https://www.mapbox.com/mapbox-gl-js/examp
我需要mapbox gl的某种Google map “空闲”事件。 当触发每个事件并且 map 停止放大/缩小拖动等并且每个图层都已加载时, map 处于空闲状态。 我必须使用此代码 map.on
有没有办法在离线设置中使用 Mapbox GL(询问 JS 和 native )?使用 MBTiles,您可以使用 MBTiles 文件或提取光栅图像。我想知道是否有任何类似的东西可以让 Mapbox
我有一个矩形,需要用正方形填充它。我找到中心线并想沿着该线放置方 block 。但是有没有简单的方法可以在 mapboxgl 中与 turfjs 等其他库一起绘制正方形?就像设置正方形的中心和边长并获
我对 MapBox 中的标记有疑问。我有多个标记,我想对其进行聚类。我使用 MapBox SDK for android。请帮我。非常感谢。 我在 Google Service Map Android
我建立了一个新的 react-native 项目并使用 yarn add @react-native-mapbox-gl/maps 添加了 Mapbox。 这个 Notice, that if you
我建立了一个新的 react-native 项目并使用 yarn add @react-native-mapbox-gl/maps 添加了 Mapbox。 这个 Notice, that if you
是否可以获取对应于 Mapbox 缩放级别的仪表列表?就像下面从 Bing map 中列出的一样:here 最佳答案 是的,就在 Mapbox 文档中: https://docs.mapbox.com
由于 Mapbox GL 文档没有讨论任何关于向 LngLat 坐标添加简单标记的内容,而且实际上只有关于如何添加自定义标记的文档,我希望有人能告诉我您应该如何获取 Mapbox-gl.js实际上为传
我有一个图层将 geojson 源中的点要素渲染为圆圈。以下是其中一项功能的示例: { type: 'Feature', properties: { color: 'red',
如何使用嵌套值以使用 case == 运算符?就像是: this.map.setPaintProperty("somelayer", "fill-color", ["case",
我正在使用 mapbox.js 制作带有地点的 map 。我只是想让 map 返回点击的正确坐标,我使用以下代码成功管理: map.on('click', function(e) { var
我在 style.load 事件上重绘图层并移除图层 map.on('style.load', function() { loadByBounds(tempBou
我正在努力实现更好的文本大小调整,相信通过插值,我也许能够将我当前的文本标签更新为更高效的格式。目前我们正在创建“静态文本”,本质上我们获得了特定缩放级别的理想文本大小,然后在每个缩放级别使用停止缩放
我是一名优秀的程序员,十分优秀!