2012-09-21 7 views
0

웹 기반지도에서 장소 표시를 가져 와서 Google 어스에서 사용할 수 있도록 KML로 내보내는 유틸리티를 만들고 있습니다. 문제는 KML이 BGR (AABBGGRR 인 경우 AA는 알파이지만 여기서는 관련 없음)과 달리 표준 RGB입니다. 빨강 (FF0000)과 같은 간단한 색상의 경우 변환은 간단합니다 : 0000FF. 그러나 7DCCFF (연한 파란색과 유사 함)와 같은 것을 발견했습니다. 단순히 문자열을 뒤집 으면 Google 어스에서 같은 색상이 나오지 않습니다. 나는 여기서 뻔뻔스럽게 명백한 것을 놓치고 있니?자바에서 KML 색상의 16 진수 변환

미리 감사드립니다.

답변

1

방법에 대해 : 정규식

분할 (?<=\G..)

String color = "123456"; 
String[] list = color.split("(?<=\\G..)"); 
for(String s : list) { 
    System.out.println(s); 
} 
의 출력 할 줄 것이다

: 지금 당신은 단순히 list[0], list[1] and list[2]

정규식 중 일부 스왑을

12 
34 
56 

(?<=\G..) ma tches 두 문자 (..) 전에 이 ((?<=))

+0

네를, 당신의 대답은 제가 잘못하고 있었는지 깨닫게했다 및 게다가 그것은 왜 노란색과 같은 색으로 작동했는지. 문자열을 반대로하면 개별 색상의 값이 서로 바뀝니다. 감사! – robhyx

2

나는 KML/RGB 색상을 변환하는 간단한 PHP 도구를 경제력 한 다음에 마지막 경기 (\G)가 빈 문자열,

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; 
} 

확인 여기에 예 :이 두 PHP 함수를 사용 http://netdelight.be/kml/

관련 문제