お世話になっております、
現在位置情報の取得について不具合が発生しました。
やりたいことは開始時(create.show)開始位置を取得、終了時( create.submit)終了位置を取得。
GeocoderAPIなどを使っております、
現在は位置は取得出来ているらしいか、終了位置のフィールドに位置情報をセット出来ない。正確で言うと、一瞬セットしたか、保存完了時に確認したらなくなっています、そしてレコードID(上部)が住所に変更しています。
位置情報取る前の状態
位置情報とって、保存後の状態
途中は一瞬これになっています。
プログラムも添付します。
'use strict';
document.write('<script type="text/javascript" src="//maps.googleapis.com/maps/api/js?key=XXX"></script>');
(function() {
kintone.events.on(['mobile.app.record.create.show'], function(event) {
navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {
enableHighAccuracy: true
});
var record = event.record;
record['開始時間'].disabled = true;
record['結束時間'].disabled = true;
record['address'].disabled = true;
record['address2'].disabled = true;
return event;
});
})();
(function() {
kintone.events.on(['mobile.app.record.edit.show'], function(event) {
var record = event.record;
record['開始時間'].disabled = true;
record['結束時間'].disabled = true;
record['address'].disabled = true;
record['address2'].disabled = true;
return event;
});
})();
(function() {
kintone.events.on(['mobile.app.record.create.submit'], function(event) {
navigator.geolocation.getCurrentPosition(successCallback2, errorCallback, {
enableHighAccuracy: false
});
var record = event.record;
var date = new Date();
var datetime = moment(date).format('YYYY/MM/DD HH:mm:ss');
record['結束時間']['value'] = moment(datetime).toISOString();
return event;
});
})();
// 処理成功時のコールバック関数
var successCallback = function(p) {
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
geocoder.geocode({
latLng: latlng
}, function(res, status) {
if (status == google.maps.GeocoderStatus.OK) {
var data = kintone.mobile.app.record.get();
data["record"]["address"].value = res[0].formatted_address;
kintone.mobile.app.record.set(data);
} else {
alert("geocode 取得に失敗 :" + status);
}
});
}
var successCallback2 = function(e) {
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(e.coords.latitude, e.coords.longitude);
geocoder.geocode({
latLng: latlng
}, function(res, status) {
if (status == google.maps.GeocoderStatus.OK) {
var data = kintone.mobile.app.record.get();
data["record"]["address2"].value = res[0].formatted_address;
kintone.mobile.app.record.set(data);
alert("geocode 取得成功 :" + status);
} else {
alert("geocode 取得に失敗 :" + status);
}
});
}
// 処理失敗時のコールバック関数
var errorCallback = function(e) {
alert(e.message);
}
consoleも全くエラーメッセージがなくて、戸惑っています、見解やアドバイスお願い致します。