Я работаю над Android-приложением, используя Phonegap, и мне трудно понять, как открыть собственное приложение Google Maps для отображения маршрутов. У меня нет каких-либо проблем с открытием карты, вставив URL-адрес, но открытие приложения сильно меня озадачило. Пока мне только удалось найти предложения, связанные с Phonegap для разработки на платформе iOS.
Я добавил Карты Google в разрешения белого списка, включая правильный файл Cordova.js и ссылку google maps в теге script, имею правильные разрешения в моем файле AndroidManifest.xml, включая Cordova.jar и Google Map API в моем пути сборки, в папке res, в папке res, js файле в каталоге my/www, jar файле в каталоге libs есть папка xmlgg.
То, что я пытаюсь выполнить:
-
1. При нажатии ссылки откройте собственное приложение Google Maps. Если приложение не установлено на устройстве, уведомите пользователя о том, что Карты Google не установлены и должны быть установлены.
- а. Я уже проверяю подключение к сети и обработку, как это должно быть сделано.
Пример ниже работает на моем устройстве Android точно так же, как и на iOS, но, очевидно, не открывает действия приложения Google Maps.
<a> href="#" onclick="location.href='http://maps.google.com/maps?q=TD Washington DC'; return false;"><img src="img/ico_pin.png" />White House</a></a>
Второй пример добавляется к первому, включая конечное местоположение, хотя мне не удалось выяснить, как вставить текущее местоположение. Самое главное, однако, он все еще не открывает приложение Google Maps.
<a href="javascript:openMaps('daddr=1600+Pennsylvania+Ave+NW+Washington+DC+20500+USA');"><img src="img/ico_pin.png" />White House</a>
function openMaps(querystring) {
var maproot = '';
maproot = 'http://maps.google.com/maps?saddr=Current+Location&';
window.location = maproot + querystring;
}
В третьем примере ниже я могу отображать карту в своем приложении. Он показывает правильный маршрут (из служебного вида из точки A в точку B), но снова не открывает фактическое приложение Google Maps.
<a id="whDirections" href="#mm_directions" onclick="getDirections()">
<img src="img/ico_pin.png" />White House</a>
<div data-role="content">
<div class="ui-bar-c ui-corner-all ui-shadow" style="padding: 1em;">
<div id="mapdirections_canvas" style="height: 300px;"></div>
</div>
</div>
function getDirections() {
var directionsService = new google.maps.DirectionsService();
var map;
var directionsDisplay = new google.maps.DirectionsRenderer();
var mapOptions = {
zoom: 9,
zoomControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("mapdirections_canvas"), mapOptions);
directionsDisplay.setMap(map);
var myLatLng = new google.maps.LatLng(gmmLat, gmmLong);
if (document.getElementById("whDirections")) {
var request = {
origin: myLatLng,
destination: new google.maps.LatLng(38.897096, -77.036545),
travelMode: google.maps.TravelMode.DRIVING
};
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
}
});
}
Если у кого есть ссылка или какая-либо идея по этому поводу, я бы очень признателен за помощь. Помимо приложения "Hello World", это мое первое мобильное приложение. Пожалуйста, дайте мне знать, если я пропустил что-либо или если я просто делаю это совершенно неправильно. Если какая-либо дополнительная информация необходима, сообщите мне.
Заранее благодарим за помощь.