Я новичок в Android и, возможно, мне здесь не хватает некоторых очень простых вещей.
Я пытаюсь разместить пользовательские файлы KML на сервере за моим брандмауэром и отобразить эти файлы KML на эмуляторе Android.
Я начал с написания простого приложения, которое использует Intent для отображения наложения и нацелив приложение на гео: 0,0? Q = http://code.google.com/apis/kml/documentation/KML_Samples.kml. Это работает в эмуляторе.
Затем я скачал этот файл KML и разместил его на своем веб-сервере (Apache 2.2 в Fedora). Я добавил директиву AddType для расширения .kml и перезапустил HTTPD.
Когда я указываю намерение моего простого приложения на файл KML, размещенный внутри, я получаю сообщение об ошибке «Невозможно отобразить карту сообщества, поскольку она содержит ошибки».
Я добавил некоторый код, чтобы попытаться загрузить файл KML независимо от 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);
}
С точкой останова в первой строке сообщения журнала я могу проверить результаты:
statusline = "HTTP / 1.1 200 OK"
Тип содержимого: application / vnd.google-earth.kml + xml
Вот намерение, которое я использую:
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 с частного сервера?
- Какие инструменты доступны (если есть) для определения того, что не так с тем, что я сделал (что-то более информативное, чем «Карта сообщества ...»)?
Спасибо