나는 안드로이드에 익숙하지 않기 때문에 여기에 아주 기본적인 것들이 빠져 있습니다.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);
그래서 두 가지 주요 질문은
- 내가 KML 개인 서버에서로드하려면 어떻게해야합니까?
- "커뮤니티 맵"보다 유익한 정보를 얻을 수있는 도구는 무엇입니까?
감사
Google 사이트에서 사본을 다운로드하여 내 웹 서버에 게시 할 때 KML이 유효하다고 가정했습니다. 외부 링크가 있는지 확인하기 위해이를 파헤쳐 야하지만 실패한 경우 두 가지 모두 실패하지 않았습니까? – JoshOfAllTrades
내가 물어 본 이유는 오류 메시지가 응용 프로그램과 무관 한 것처럼 보였기 때문입니다. 네트워크 정보에서 실제로 KML 파일을 얻는 것처럼 보입니다 (응답 길이를 확인 했습니까?) 그러면 내가 생각할 수있는 오류는 잘못된 형식의 KML과 관련이 있습니다. – jjrdk