2010-07-14 2 views
1

나는 안드로이드에 익숙하지 않기 때문에 여기에 아주 기본적인 것들이 빠져 있습니다.Google지도 모바일에서 사용할 맞춤 KML을 호스팅하는 비법은 무엇입니까?

내 방화벽 뒤에있는 서버에서 맞춤 KML 파일을 호스팅하고 Android 에뮬레이터에서 KML 파일을 표시하려고합니다.

오버레이를 표시하고 geo : 0,0? q = http://code.google.com/apis/kml/documentation/KML_Samples.kml에 앱을 지정하기 위해 인 텐트를 사용하는 간단한 앱을 작성하여 시작했습니다. 이것은 에뮬레이터에서 작동합니다.

다음으로 KML 파일을 다운로드하여 웹 서버 (Fedora의 Apache 2.2)에 게시했습니다. .kml 확장명에 대한 AddType 지시문을 추가하고 HTTPD를 다시 시작했습니다.

간단한 앱의 인 텐트를 내부적으로 호스팅되는 KML 파일로 지정하면 "오류가있어 커뮤니티 맵을 표시 할 수 없습니다."라는 오류 메시지가 나타납니다. 나는를 검사 할 수 있습니다 첫 번째 로그 메시지의 줄에 중단 점으로

final HttpClient client = new DefaultHttpClient(); 
final HttpGet get = new HttpGet("http://mycompany.com/data/KML_Samples.kml"); 
try { 
    final HttpResponse resp = client.execute(get); 
    android.util.Log.e("MapOverlays", resp.toString()); 
} catch (Throwable t) { 
    android.util.Log.e("MapOverlays", "Exception", t); 
} 

:

내가 그래서 난 상태 표시 줄 등을 확인할 수 있습니다 시도하고 KML의 독립적 KML 파일을 다운로드하는 몇 가지 코드를 추가 결과 :

statusline = "HTTP/1.1 200 OK"

의 Content-Type : application/vnd.google-earth.kml + xml로는

여기에 텐트의 I 유이야 노래 :

final Intent intent = new Intent(
android.content.Intent.ACTION_VIEW, 
     Uri.parse("geo:0,0?q=http://mycompany.com/data/KML_Samples.kml")); 
startActivity(intent); 

그래서 두 가지 주요 질문은

  1. 내가 KML 개인 서버에서로드하려면 어떻게해야합니까?
  2. "커뮤니티 맵"보다 유익한 정보를 얻을 수있는 도구는 무엇입니까?

감사

답변

0

이 바보 같은 질문이있을 수 있습니다,하지만 난 당신이 문제의 KML 파일이 실제로 유효한 KML 것을 확인 여부를 알 필요가있다.

다른 문제는 다운로드하는 KML 파일에 Android 기기에서 연결할 수없는 네트워크 링크가 있다는 것입니다.

+0

Google 사이트에서 사본을 다운로드하여 내 웹 서버에 게시 할 때 KML이 유효하다고 가정했습니다. 외부 링크가 있는지 확인하기 위해이를 파헤쳐 야하지만 실패한 경우 두 가지 모두 실패하지 않았습니까? – JoshOfAllTrades

+0

내가 물어 본 이유는 오류 메시지가 응용 프로그램과 무관 한 것처럼 보였기 때문입니다. 네트워크 정보에서 실제로 KML 파일을 얻는 것처럼 보입니다 (응답 길이를 확인 했습니까?) 그러면 내가 생각할 수있는 오류는 잘못된 형식의 KML과 관련이 있습니다. – jjrdk

관련 문제