0

私は、ウェブベースの地図上で目印を取得し、GoogleEarthで使用するためにそれらをKMLにエクスポートするユーティリティを構築しています。問題は、指定された16進値が標準RGBであるのに対し、KMLにはBGRが必要なことです(AABBGGRR、AAはアルファですが、ここでは関係ありません)。赤(FF0000)のような単純な色の場合、変換は単純です:0000FF。ただし、7DCCFF(水色のようなもの)のようなものを見つけました。文字列を逆にすると、GoogleEarthでは同じ色になりません。私はここで露骨に明白な何かを見逃していますか?

前もって感謝します!

4

2 に答える 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]

正規表現は、最後の一致()の後に2文字)が続く( )が続く(?<=\G..)空の文字列と一致します\G..(?<= )

于 2012-09-21T16:11:10.770 に答える