как заставить карты принимать динамически сгенерированный файл KML?
-
20-09-2019 - |
Вопрос
У меня есть кнопка, которая запускает приложение Google Maps на моем устройстве с помощью намерения.Я хочу иметь возможность передать ему php-страницу, которая генерирует KML-файл.
Я сделал это на веб-сайте перед использованием googlemaps api в JS, но, похоже, это не работает на Android.
Мой php-файл выглядит следующим образом;
<?php
echo '<kml xmlns="http://www.google.com/earth/kml/2">';
echo '<Placemark>';
echo '<name>Google Inc.</name>';
echo '<description>1600 Amphitheatre Parkway, Mountain View, CA 94043</description>';
echo '<Point>';
echo '<coordinates>-122.0841430, 37.4219720, 0</coordinates>';
echo '</Point>';
echo '</Placemark>';
echo '</kml>';
?>
Запуск с:
final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=http://website.com/kml_gen.php"));
startActivity(myIntent);
Он запускает maps, находит файл, но не отображает его, "поскольку он содержит ошибки".
Это просто невозможно, или есть другие способы создать намерение, которое могло бы сработать?
Решение
Попробуйте установить mimetype в соответствии со спецификацией: application/vnd.google-earth.kml+xml
Поместите это в первую строку
header('Content-type: application/vnd.google-earth.kml+xml');
Не связан с StackOverflow