- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Angular 应用程序中,我正在使用 Directions api 并尝试添加从一个方向到另一个方向的路线路径。第一次发出ajax请求时,路由路径已正确创建,但从第二次开始,我看不到路由路径。
从第二次 ajax 请求开始,我收到此错误 - 此 map 上已存在 ID 为“route”的图层
有什么方法可以更新mapbox中的源和图层吗?
drawRoute() {
const url = `https://api.mapbox.com/directions/v5/mapbox/driving/${this.startData?.lng},${this.startData?.lat};${this.endData?.lng},${this.endData?.lat}?alternatives=true&geometries=geojson&steps=true&access_token=${environment.mapbox.accessToken}`;
this._http.get(url).subscribe({
next: (result) => {
const geojson: any = {
type: 'Feature',
properties: {},
geometry: {
type: 'LineString',
coordinates: result.routes[0]
}
};
if (this.map?.getSource('route')) {
const source: mapboxgl.GeoJSONSource = this.map?.getSource('route') as
mapboxgl.GeoJSONSource;
source.setData(geojson);
} else {
this.map?.addSource('route', {
type: 'geojson',
data: {
type: 'Feature',
properties: {},
geometry: {
type: 'LineString',
coordinates: result.routes[0].geometry.coordinates
}
}
});
}
this.map?.addLayer({
id: 'route',
type: 'line',
source: 'route',
layout: {
'line-join': 'round',
'line-cap': 'round'
},
paint: {
'line-color': '#1F5ED8',
'line-width': 2
}
});
},
error: (err) => {}
})
}
最佳答案
我认为您正在寻找 Mapbox GL JS 中可用于 GeoJSON 源的 setData()
方法。该方法允许您更新底层源数据并触发 map 重新渲染。然后,数据驱动的样式应该启动并根据需要设置更新层的样式。
https://docs.mapbox.com/mapbox-gl-js/api/sources/#geojsonsource#setdata
这是一个伪代码示例
map.getSource("source-id").setData(updatedGeoJSONData);
希望这有帮助!我一直在为 Mapbox 编写一系列指南,您可能也会感兴趣。以下是一些链接:
关于javascript - Mapbox GL setData 更新图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66829445/
我正在使用 Heatmap.js 库在 Google map 上创建 map 叠加层。只要我在标签中对数据进行硬编码,它就可以很好地工作。 var myLatlng = new google.map
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我知道我们应该使用setData()来更新图表的系列, 但我不知道在创建某些柱形图时如何更新该系列,因为它的系列如下所示 series: [{ name: 'Tokyo',
我正在使用 series[0].setData() 函数使用按钮更改 High Charts 图表上的系列。它确实更改了数据并更新了图表,但是当我尝试使用第二个按钮来重置我的后台数据时,似乎什么也没有
我想用两行设置我的条形数据。 不可能用 \n 来做到这一点。 我使用 MPAndroidChart 版本 v2.2.4。 我用这段代码尝试过: Bar1 = new BarEntry(20f,0,"2
我有一张 Mapbox GL map ,其中有一个图层和该图层上的多个标记,我正在尝试更新特定标记,因此我使用 setData 来仅更新一个标记,但 setData 会将整个图层标记重置为仅添加一点,
我在使用 jquery-flot(flotcharts)制作实时图表时遇到麻烦。 这是我的代码: $(document).ready(function(){ var test = function()
我没有发现这两个函数有任何区别。 使用以下 JavaScript 代码: var x = {}; $(x).bind({ setData: function (event, key, value)
我正在尝试创建一个饼图,我可以通过一个按钮在两个数据系列之间切换。 当我将值直接传递给按钮 onclick 事件上的 setData() 函数时,一切正常。参见 jsfiddle (在职的)。 但是如
当CKEditor图像中的设置数据在编辑器区域消失时。链接和其他格式都可以,所以看起来不像双引号。另外,我尝试了绝对定位和外部图像,所以这不是找不到图像的问题。 这是我的代码: function ge
我使用新版本的 CKEditor。我面临的问题是额外的段落或 当我这样做时,在数据周围添加标签 setData 。我这样做是这样的: editor.setData(editor.getData()+'
我在 JSP 页面中定义了以下文本区域: 在我的 js 文件中,我设置内容数据如下: CKEDITOR.instances.edit_subtaskstep_notes.setData("Hello
我目前正在尝试在从文件加载后使用 SetData<> 在 Texture2D 对象上手动设置纹理数据。已在启用 MipMap 的情况下创建 Texture2D。数据已从使用 DXT1 压缩保存的 .d
我正在开发我的 SMS/MMS 应用程序并使用 android 消息通知样式。我想这样做,以便当用户发送图像时,我可以使用 MessagingStyle.Message.setData(uri, mi
我已经构建了一些自定义插件,但只有一个是监听键盘的按键事件。 在代码下方,您可以看到设置事件的设置。 (这有点基本) 现在我遇到了以下问题,如果我在 instanceReady 监听器中使用 edit
我有一个 QListWidget的日历。每个QListWidgetItem在逻辑上与 Calendar 的实例相关联,这是一个属于应用程序模型端的类。 我可以使用 QListWidgetItem::s
我有一个气泡图,可以与 jQuery UI slider 一起更改图表的内容。 (“通过时间”)但是,图表上的气泡可能会按周进出图表,并且在使用 setData 更新时,它忽略任何最初不存在的新系列。
在我的 Angular 应用程序中,我正在使用 Directions api 并尝试添加从一个方向到另一个方向的路线路径。第一次发出ajax请求时,路由路径已正确创建,但从第二次开始,我看不到路由路径
我使用的是 Angular,并使用 ngModel 设置 ckeditor 的数据 - 当我们渲染时我们设置数据 editor.setData(ngModel.$viewValue); 我们尝试保留光
我正在尝试为用户上载化身到Firestore存储并返回图像URL,以将其保存为用户实例上用户的avatarUrl属性。我可以将图片成功上传到Firestore。问题与URL的接收有关。异步函数会延迟,
我是一名优秀的程序员,十分优秀!