gpt4 book ai didi

javascript - 带孔的 GeoJson LineString 特征集合

转载 作者:行者123 更新时间:2023-12-04 08:10:17 24 4
gpt4 key购买 nike

我有一长串坐标(由 GPS 传感器发送)代表 Assets 的移动。
我正在使用传单来呈现 GeoJSON,如果我将 LineString 呈现为单个特征,它可以正常工作,但是如果我将其分解为多个特征(在 FeatureCollection 中 - 应用不同的动态颜色),我开始看到“洞”之间的功能。
enter image description here
我很确定这是因为我收到的数据中实际上存在一个“漏洞”。但为什么它可以作为单个 LineString 功能?有没有办法来解决这个问题?
这是 GeoJSON(非常大的对象)的摘录
对象的 866 个特征中有 3 个

{
"type":"Feature",
"properties":{
"type":"traffic",
"color":"#ffa600"
},
"geometry":{
"type":"LineString",
"coordinates":[
[
7.583125,
45.0485616
],
[
7.5830532999999996,
45.0485816
],
[
7.58299,
45.0486133
],
[
7.582893299999999,
45.0486066
],
[
7.5828682999999995,
45.04859
]
]
}
},
链接到 bin
https://jsbin.com/nexijajake/edit?html,output
具有单个特征的示例
https://jsbin.com/guqihajalu/1/edit?html,output

最佳答案

实际上,渲染没有任何问题。您的 data数组(在您的 jsbin 链接中)是一个彼此不连接的线串数组。你有一个这样的模式(想象每一行都是一个线串):

[pointA-pointB-pointC]


[pointD-pointE-pointF]


为了使您的线连续,每个线串的最后一个点应作为第一个点存在于下一个线串中:

[pointA-pointB-pointC]


[pointC-pointD-pointE-pointF]


这样,您的线路将是连续的。
例如,以下示例(取自您的 jsbin)有一个缺口:
const data = [
{
"type":"Feature",
"properties":{
"type":"traffic",
"color":"#ffa600"
},
"geometry":{
"type":"LineString",
"coordinates":[
[
7.583125,
45.0485616
],
[
7.5830532999999996,
45.0485816
],
[
7.58299,
45.0486133
],
[
7.582893299999999,
45.0486066
],
[
7.5828682999999995,
45.04859
]
]
}
},
{
"type":"Feature",
"properties":{
"type":"normal",
"color":"#07e36a"
},
"geometry":{
"type":"LineString",
"coordinates":[
[
7.582795,
45.0485149
],
[
7.582624999999999,
45.0483233
],
[
7.581984899999999,
45.047521599999996
]
]
}
}
];
间隙是固定的(第二个线串的第一个点是第一个线串的最后一个点):
const data = [
{
"type":"Feature",
"properties":{
"type":"traffic",
"color":"#ffa600"
},
"geometry":{
"type":"LineString",
"coordinates":[
[
7.583125,
45.0485616
],
[
7.5830532999999996,
45.0485816
],
[
7.58299,
45.0486133
],
[
7.582893299999999,
45.0486066
],
[
7.5828682999999995,
45.04859
]
]
}
},
{
"type":"Feature",
"properties":{
"type":"normal",
"color":"#07e36a"
},
"geometry":{
"type":"LineString",
"coordinates":[
//the first point here is the last of previous linestring
[
7.5828682999999995,
45.04859
],
[
7.582795,
45.0485149
],
[
7.582624999999999,
45.0483233
],
[
7.581984899999999,
45.047521599999996
]
]
}
}
];

关于javascript - 带孔的 GeoJson LineString 特征集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66009801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com