无法在 ngx-mapbox-gl 中显示自定义标记图标 angular
Can't display custom marker icon in ngx-mapbox-gl angular
我正在尝试在我的 angular 应用程序的 mapboxgl 地图中显示自定义标记图标。我已经完成了示例中显示的几乎所有内容,但无法显示自定义图标。如果我只是创建一个普通标记,它会很好地显示在地图上。但是当我尝试指定我的自定义图标时,没有任何显示。我知道它会获取我的 css,因为如果我将路径名更改为不存在的文件,它会引发错误。当我将它们记录到控制台时,我查看了创建的标记对象和地图,我看到标记是地图的一部分。但是图标不显示。尝试和调试它的最佳方法是什么?自从我复制已发布的示例以来,我看不到任何明显的错误。
var el = document.createElement('div');
el.className = 'breadcrumb';
console.log('el=', el);
var marker = new Marker(el)
.setLngLat( [this.staticBreadcrumbs.features[0].geometry.coordinates[0],
this.staticBreadcrumbs.features[0].geometry.coordinates[1]] )
.setPopup(new Popup({ offset: 25 }) // add popups
.setHTML('<h3>' + '</h3><p>' + 'hello marker' + '</p>'))
.addTo(this._mapRef);
console.log('adding static marker ', marker);
console.log('map=', this._mapRef);
css:
.breadcrumb {
background-image: url('breadcrumb-50px.png');
width: 50px;
height: 50px;
z-index:999;
}
让它工作的关键是从 css 中删除背景图像并将其添加到代码中。
el.style.backgroundImage = 'url("/assets/breadcrumb-5px.png")';
el.style.width = '5px';
el.style.height = '5px';
所有 3 项都是必需的 - 由于 url 是本地文件,路径周围的引号,并且需要高度和宽度才能显示图标。
我正在尝试在我的 angular 应用程序的 mapboxgl 地图中显示自定义标记图标。我已经完成了示例中显示的几乎所有内容,但无法显示自定义图标。如果我只是创建一个普通标记,它会很好地显示在地图上。但是当我尝试指定我的自定义图标时,没有任何显示。我知道它会获取我的 css,因为如果我将路径名更改为不存在的文件,它会引发错误。当我将它们记录到控制台时,我查看了创建的标记对象和地图,我看到标记是地图的一部分。但是图标不显示。尝试和调试它的最佳方法是什么?自从我复制已发布的示例以来,我看不到任何明显的错误。
var el = document.createElement('div');
el.className = 'breadcrumb';
console.log('el=', el);
var marker = new Marker(el)
.setLngLat( [this.staticBreadcrumbs.features[0].geometry.coordinates[0],
this.staticBreadcrumbs.features[0].geometry.coordinates[1]] )
.setPopup(new Popup({ offset: 25 }) // add popups
.setHTML('<h3>' + '</h3><p>' + 'hello marker' + '</p>'))
.addTo(this._mapRef);
console.log('adding static marker ', marker);
console.log('map=', this._mapRef);
css:
.breadcrumb {
background-image: url('breadcrumb-50px.png');
width: 50px;
height: 50px;
z-index:999;
}
让它工作的关键是从 css 中删除背景图像并将其添加到代码中。
el.style.backgroundImage = 'url("/assets/breadcrumb-5px.png")';
el.style.width = '5px';
el.style.height = '5px';
所有 3 项都是必需的 - 由于 url 是本地文件,路径周围的引号,并且需要高度和宽度才能显示图标。