2016-04-08 17 views
0

Bir katmanın dolgu rengini döndürmek istiyorum, böylece ayrı bir belge olarak oluşturulabilen yazdırılabilir bir harita üzerinde dinamik bir gösterge oluşturmak için değişken olarak kullanılabilir.döndürülen getPaintProperty yöntemini belirtme Mapbox gl

Tarayıcı yalnızca altıgen renkleri alır ancak getPaintProperty hsl değerini döndürür. Mapbox'ın bu bilgiyi, nasıl erişileceğini anlayamadığım stil/katmanlara karşı taşıdığını biliyorum.

Bunun yerine katman dolgu renkleri hex değerlerini döndürmenin bir yolu var mı?

Bu

i her katmanları fill-color erişmek için kullanıyorum jenerik kodudur;

map.on("render", function() { 
    if(map.loaded()) { 
    console.log(map.getPaintProperty('layer id','fill-color')); 
    } 
    }); 

Benim şu anki alternatif dönüşümü gerçekleştirmek için bir additional library kullanmaktır.

cevap

0

Sadece altıgen işlevine genel RGBA kullanabilirsiniz:

//Function to convert hex format to a rgb color 
function rgb2hex(rgb){ 
    rgb = rgb.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i); 
    return (rgb && rgb.length === 4) ? "#" + 
     ("0" + parseInt(rgb[1],10).toString(16)).slice(-2) + 
     ("0" + parseInt(rgb[2],10).toString(16)).slice(-2) + 
     ("0" + parseInt(rgb[3],10).toString(16)).slice(-2) : ''; 
} 

rgb2hex (map.getPaintProperty ('park') '-dolgu rengini'); Bunun yerine MapBox doğrudan HSL onaltılık aşağı çekmek için bir yol umuyordum

returns "#e6ebcc"

+0

(kesinlikle stil karşı depolar) ancak şu anda API üzerinden maruz görünmüyor. Bunun yerine benim için uygun bir alternatif. Şerefe. – benj