0

我正在构建一个实用程序,它在基于网络的地图上放置地标并将它们导出到 KML 以在 Google 地球中使用。问题是我给出的十六进制值是标准 RGB,而 KML 需要 BGR(AABBGGRR,其中 AA 是 alpha,但这在这里不相关)。对于像红色(FF0000)这样的简单颜色,转换很简单:0000FF。但是,我发现像 7DCCFF(就像浅蓝色)这样的东西,简单地反转字符串不会在 Google 地球中产生相同的颜色。我在这里错过了什么明显的东西吗?

提前致谢!

4

2 回答 2

2

我开发了一个简单的 PHP 工具来转换 KML / RGB 颜色,使用这两个 PHP 函数:

function rgbToKml($color, $aa="ff"){
$rr = substr($color, 0, 2);
$gg = substr($color, 2, 2);
$bb = substr($color, 4, 2);
return $aa.$bb.$gg.$rr;
}
function kmlToRgb($color){
$rr = substr($color, 6, 2);
$gg = substr($color, 4, 2);
$bb = substr($color, 2, 2);
return $rr.$gg.$bb;
}

在此处查看示例:http: //netdelight.be/kml/

于 2012-12-17T12:24:19.600 回答
1

怎么样:

用正则表达式拆分(?<=\G..)

 String color = "123456";
 String[] list = color.split("(?<=\\G..)");
 for(String s : list) {
     System.out.println(s);
 }

这将为您提供以下输出:

12
34
56

现在你只需在list[0], list[1] and list[2]

正则表达式(?<=\G..)匹配一个空字符串,该字符串具有最后一个匹配项( ),其\G两个字符( ..) ( )(?<= )

于 2012-09-21T16:11:10.770 回答