Я пытаюсь написать javascript в своем приложении для Android, которое будет рисовать линию из одной точки в другую на основе значений, переданных через объект PolyLineOptions от android.Изменение цвета ol.geom.LineString в открытых слоях 3
Я написал пару JSI-интерфейсов для получения соответствующей информации из объекта PolyLineOptions, такого как latlng и color, и я могу заставить его рисовать линию отлично, однако, когда я пытаюсь изменить ее цвет, t ничего, я даже попытался изменить ширину, и все равно ничего.
ПРИМЕЧАНИЕ. Я написал значение цвета для журнала, и оно выполняется правильно, поэтому все материалы 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);
}
}
}
ли кто-нибудь сможет помочь мне понять, что я делаю неправильно? Кажется, он полностью игнорирует стиль. Я предполагаю, что это что-то глупое, но я просто не вижу его.
Вы не использовали цвет, возвращенный из окна. JSInterface.getColorFromPolyLine (polyLine) в вашем стиле. Вы установили цвет: '# ffcc33'. Таким образом, «# ffcc33» будет цветом вашей линии. – itsyahani
Извините, что это был всего лишь код, который я скопировал из другого места и забыл изменить его. Дело не в этом, оно полностью игнорировало стиль. Оказывается, если вы используете line.setStyle (стили), то он работает. но путем установки его в создании функции нет. Я не знаю, почему – Keithin8a