Phonegap を使用して Android アプリケーションに取り組んでいますが、ネイティブの Google マップ アプリケーションを開いて道順を表示する方法がわかりません。URL を挿入してマップを開くのは問題ありませんが、アプリケーションを開くと困惑します。これまでのところ、iOS プラットフォームでの開発に関する Phonegap 関連の提案しか見つけることができませんでした。
ホワイトリストのアクセス許可に Google マップを追加しました。スクリプト タグに正しい Cordova.js ファイルと Google マップ リンクを含め、AndroidManifest.xml ファイルに正しいアクセス許可を設定し、ビルド パスに Cordova.jar と Google Map API を含めました。 、res ディレクトリに Phonegap xml フォルダー、assets/www ディレクトリに js ファイル、libs ディレクトリに jar ファイルがあります。
私が達成しようとしていること:
-
1. リンクをクリックすると、ネイティブの Google マップ アプリケーションが開きます。アプリケーションがデバイスにインストールされていない場合は、Google マップがインストールされておらず、インストールする必要があることをユーザーに通知します。
- a. 私はすでにネットワーク接続を確認しており、それを行う必要があります。
以下の例は、iOS とまったく同じように Android デバイスで動作しますが、アクション Google マップ アプリケーションを明らかに開きません。
<a> href="http://maps.google.com/maps?q=TD Washington DC"><img src="img/ico_pin.png" />White House</a></a>
2 番目の例は、現在の場所を挿入する方法を理解できませんでしたが、最後の場所を含めることで最初の例に追加されます。ただし、最も重要なことは、それでも Google マップ アプリケーションが開かないことです。
<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;
}
以下の 3 番目の例では、アプリケーション内でマップを表示できます。正しいルート (ポイント A からポイント B までの俯瞰図から) は表示されますが、実際の Google マップ アプリケーションは開きません。
<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」アプリ以外では、これが初めてのモバイル アプリケーションです。私が何かを見逃した場合、またはこれを完全に間違っている場合はお知らせください。追加情報が必要な場合は、お知らせください。
助けてくれてありがとう。