前提・実現したいこと
Monacaを使い始めて数か月のプログラミング初心者です。
Monacaで地図を表示させるアプリケーションを制作しています。
(地図の出力にはGoogle Maps JavaScript APIを用いています)
制作上で発生したエラーの解決方法と地図の表示方法を教えてください。
参考にしているのは2015年に発売された
「クラウドできるHTML5ハイブリッドアプリ開発...」です。
発生している問題・エラーメッセージ
まずコードを入力した上で実行したときのエラーメッセージは以下になっています。 ・エラーメッセージ ReferenceError: Can't find variable: angular TypeError: ons.bootstrap is not a function. (In 'ons.bootstrap()', 'ons.bootstrap' is undefined) エラーメッセージの具体的な解決方法がいくら調べてもわかりません。 また、geolocationプラグインを使用して現在位置を地図上に表示してマーカーを出力するアプリを 作っているのですが地図が実機を通しても表示されません。 参考書のコードは一部変更して書いています。
該当のソースコード
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: content: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <script src="components/loader.js"></script> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="css/style.css"> <script src="http://maps.googleapis.com/maps/api/js?key=MY KEY"></script> <body> <br /> <ons-modal var="myModal"> 位置情報を取得中… </ons-modal> <ons-page> <ons-toolbar> <div class="center">現在位置アプリ</div> </ons-toolbar> <div id="map"></div> <ons-bottom-toolbar style="text-align: right;"> <ons-toolbar-button class="put-marker"><ons-icon icon="fa-map-marker" size="20px"></ons-icon>現在地をマークする</ons-toolbar-button> </ons-bottom-toolbar> </ons-page> </body> <script> ons.bootstrap(); var map; ons.ready(function(){ myModal.show(); //高精度の位置情報を要求する(衛星による測位) var options = {maximumAge: 3000, timeout: 5000, enableHighAccuracy: true}; navigator.geolocation.getCurrentPosition(function(position){ createMap(position); }, function(result){ myModal.hide(); onError(result); }, options); $(document).on('click','.put-marker',function(){ putMarker(); }); }); function createMap(position){/*createMap()関数の記述*/}; function putMarker(){/*putMarker()関数の記述*/}; function pnError(positionError){/*onError()関数の記述*/}; function createMap(position) { var latlng = new google.naps.Latlng(position.coords.latitude, position.coords.longitude); //地図のズーム値、センター位置、タイプを指定 var mapOption = { zoom: 14, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; //地図を作成 map = new google.maps.Map($('#map')[0],mapOption); google.maps.event.addListener(map, "tilesloaded",function(){ myModal.hide(); }) }; function onError(positionError){ var code = positionError.code; switch(code){ case 1: errorMessage = '位置情報の取得がユーザーによって許可されていません。'; break; case 2: errorMessage = '位置情報の取得が行えません。'; break; case 3: errorMessage = '時間切れです。位置情報が利用できない可能性があります。'; break; default: errorMessage = 'エラーが発生しました。' +code; } ons.notification.alert({ message: errorMessage }); }; </script> </head> </html>
試したこと
補足情報(FW/ツールのバージョンなど)
参考書でのGoogle Map機能の読み込みのコードです。
<script src="http://maps.googleapis.com/maps/api/js"></script>回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/27 04:41
2018/10/27 04:45
2018/10/27 05:22
2018/10/27 05:26
2018/10/27 06:26