В чем секрет хостинга пользовательских KML для использования в Google Maps Mobile? - PullRequest
1 голос
/ 15 июля 2010

Я новичок в 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);

Итак, два основных вопроса

  1. Что мне нужно сделать, чтобы загрузить KML с частного сервера?
  2. Какие инструменты доступны (если есть) для определения того, что не так с тем, что я сделал (что-то более информативное, чем «Карта сообщества ...»)?

Спасибо

1 Ответ

0 голосов
/ 08 августа 2010

Это могут быть глупые вопросы, но мне нужно знать, проверили ли вы, что данный файл KML действительно является действительным KML.

Другая проблема, с которой вы можете столкнуться, состоит в том, что загружаемый вами файл KML содержит сетевые ссылки, которые сами по себе недоступны с вашего устройства Android.

...