gpt4 book ai didi

javascript - 更改开放层 3 中 ol.geom.LineString 的颜色

转载 作者:行者123 更新时间:2023-11-29 17:24:30 24 4
gpt4 key购买 nike

我正在尝试在我的 android 应用程序中编写一些 javascript,它会根据通过 PolyLineOptions 对象从 android 传入的值从一点到另一点画一条线。

我已经编写了几个 JSInterfaces 来从 PolyLineOptions 对象获取相关信息,例如 latlng 和 color,我可以让它很好地绘制线条,但是当我尝试更改它的颜色时,它不会做任何事情,我什至尝试改变宽度,但仍然没有。

注意:我已将颜色值写入日志,并且它正确通过,因此所有 JSInterface 的东西都按预期工作。

function drawPolyLine(polyLine){

if(polyLine != null){

var list = window.JSInterface.getPointsFromPolyLine(polyLine)

var count = window.JSInterface.getLengthFromLatLngList(list)

for(var i = 0; i < count; i+=2)
{
var lat1 = window.JSInterface.getLatFromLatLngList(list, i);
var lng1 = window.JSInterface.getLngFromLatLngList(list, i);
var lat2 = window.JSInterface.getLatFromLatLngList(list, i+1);
var lng2 = window.JSInterface.getLngFromLatLngList(list, i+1);

var coordinates = [[lng1,lat1],[lng2,lat2]];

var lineString = new ol.geom.LineString(coordinates);
lineString.transform('EPSG:4326', 'EPSG:3857');

var color = window.JSInterface.getColorFromPolyLine(polyLine);

var styles = [
// linestring
new ol.style.Style({
stroke: new ol.style.Stroke({
color: '#ffcc33',
width: 2
})
})
];

var line = new ol.Feature({
geometry: lineString,
name: 'Line',
style: styles
});
linesSource.addFeature(line);

}
}

谁能帮我弄清楚我做错了什么?它似乎完全忽略了样式。我猜它有些愚蠢,但我看不到它。

最佳答案

我想通了。原来是在创建需要使用的功能时不允许设置样式:

            var line = new ol.Feature({
geometry: lineString,
name: 'Line',
//style: styles
});

line.setStyle(styles);

我不明白为什么,所以如果有人可以解释,请随意回答,我会将您的回答标记为正确。

关于javascript - 更改开放层 3 中 ol.geom.LineString 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35174789/

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