前提・実現したいこと
https://homata.gitbooks.io/monaca_basic_course/app_map.html
以上のサイトを参考にしながらMonacaとncmbを利用した地図アプリケーションの作成を行っています。
位置情報を表示し、位置情報のポイント登録を行いたいと考えています。
発生している問題・エラーメッセージ
起動時の位置情報の表示はできるのですが、ポイントを登録する作業を行うと
以下のようなエラー文が表示されます。他のサイトなどを検索
エラーメッセージ
save_geopoint
現在位置を取得できませんでした。
{"code":3,"message":"Position retrieval timed out."}
該当のソースコード
Javascript
ソースコード
/OSMの描画時に位置情報取得に成功した場合のコールバック
var onGeoSuccess = function(position){
console.debug("onGeoSuccess()");
currentUser = new CurrentPoint();
currentUser.geopoint = position.coords; //位置情報を保存する
writemap(currentUser.geopoint.longitude,currentUser.geopoint.latitude);
};
//位置情報取得に失敗した場合のコールバック
var onGeoError = function(error){
console.log("現在位置を取得できませんでした");
console.log(error);
return error && error.code !== 3 && error.message;
};
//位置情報取得時に設定するオプション
var geoOption = {
timeout: 6000
};
function onMouseClick(evt) {
console.debug("onMouseClick()");
}
//現在地を保持するクラスを作成
function CurrentPoint(){
geopoint=null; //端末の位置情報を保持する
}
//現在地をポイントとして登録する
function save_geopoint(){
navigator.geolocation.getCurrentPosition(onSaveSuccess, onGeoError, geoOption);
console.log("save_geopoint");
}
//ポイントの登録時に位置情報取得に成功した場合のコールバック
var onSaveSuccess = function(location){
console.debug("onSaveSuccess");
navigator.notification.prompt( ' ', // メッセージ onPrompt, // 呼び出すコールバック 'ポンイントの登録', // タイトル ['登録','やめる'], // ボタンのラベル名 'ポイント名' // デフォルトのテキスト ); function onPrompt(results) { current.geopoint = location.coords; var geoPoint = new ncmb.GeoPoint(location.coords.latitude, location.coords.longitude); console.log(location.coords.latitude + ":" + location.coords.longitude); var Places = ncmb.DataStore("PlacePoints"); var point = new Places(); point.set("name",results.input1); point.set("geo", geoPoint); point.save() .then(function(){ var marker = L.marker([location.coords.latitude, location.coords.longitude]) .bindPopup("<h1>" + results.input1 + "</h1>") .addTo(map); }) .catch(function(err){// エラー処理 }); } };
試したこと
エラーメッセージで検索したところ位置情報のタイムアウトが考えられたので
https://docs.monaca.io/ja/reference/cordova_9.0/geolocation/
上記のサイトを参考にし、config.xmlファイルに
<edit-config target="NSLocationWhenInUseUsageDescription" file="*-Info.plist" mode="merge">
<string>need location access to find things nearby</string>
</edit-config>
上記のコードを入力し実行したところエラーはなくならずに詰まってしまいました。もしよろしければご教授のほどよろしくお願いいたします。
あなたの回答
tips
プレビュー