新規投稿
フォローする

Mapに現在地を表示したい

お世話になります。

顧客訪問リストのピン表示や、個社の地図表示は
すでに素晴らしいサンプルが作成されておりますが、
例えば
https://cybozudev.zendesk.com/hc/ja/articles/202640950-%E4%BD%8F%E6%89%80%E3%81%8B%E3%82%89%E5%9C%B0%E5%9B%B3%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B
こちらのような地図の中に、「同時に現在地も表示したい」
などという場合のアイディアをどなたかお持ちではないでしょうか。

自力で調査し、GeolocationというAPIを使って現在地の緯度および経度を
取得できることまではわかったのですが、その値をeventと一緒に
kintone内の処理として組み込むことができず困っております。

たとえば

//現在地情報を取得します
function setNowLatLng(){
var message;
if (navigator.geolocation) {
// 現在の位置情報取得を実施 正常に位置情報が取得できると、
// successCallbackがコールバックされます。
navigator.geolocation.getCurrentPosition
(successCallback,errorCallback);
} else {
message = "本ブラウザではGeolocationが使えません";
alert(message);
}
}
// ( 2 )位置情報が正常に取得されたら
function successCallback(pos) {
var Position_latitude = pos.coords.latitude;
var Position_longitude = pos.coords.longitude;
//位置情報が算出された
}

  function errorCallback(error) {
    message = "位置情報が許可されていません";
   alert(message);
  }

このようなプログラムの場合、
算出された現在地の情報を他の関数に渡すためには
event情報を持ち込めず、他の関数でevent情報をやりとりする場合には
ここで求めた現在地情報を持ち出せません。

偉大なる先輩方のご助力を心よりお待ち申し上げております。

0

6件のコメント

Avatar
Ryu Yamashita

Yuta Onishi さん

Tipsにあります「Geolocation API(位置情報)を使ったモバイルアプリを作ってみよう」は割と近いのではないかと思いますが、いかがでしょうか? (同期リクエスト部分を非同期に変えたほうが良いかと思います。モバイルのブラウザはOKですが、モバイルアプリでエラーになっているという話だったと思います)

リアルタイムな処理となると、読み込むライブラリのアドレスのうち&sensor=falseの部分を変更しないといけないと思います。この先は試したことがないので分かりませんが^^;

また、サードパーティのライブラリ使用については別途ライセンスについてご確認いただくのが良いと思います。

0
Avatar
Yuta Onishi

Yamashita様

いつもお世話になっております。

なるほど、その時点での現在地をフィールドに格納させることで
そこから値を引っ張る仕組みのようですね・・・。

少し光明が見えた気がします!ありがとうございます!

0
Avatar
Ryu Yamashita

すみません。リンクできていませんでしたm(__)m

モバイルに合わせることを重んじ、kintoneの標準の関数群を使おうとした時の一つの方法ですね。登録するという前提もありましたが。

eventの情報を組み合わせて非同期の処理を続けるという点では、似たような感じになるかと思います。

0
Avatar
Yuta Onishi

お恥ずかしい話ですが、色々と試していたら
関数内にevent情報を持ち込めました。

レコード詳細画面にて見事、目的地と現在地を表示させることができました。

お騒がせしてすみませんでした。

0
Avatar
Ryu Yamashita

解決されたようで、良かったです。

0
Avatar
y.sano

Yuta Onishiさん

当方も同じような事で悩んでおります。できればプログラムを教えていただけないでしょうか。

0
サインインしてコメントを残してください。