LoginSignup
0
2

More than 5 years have passed since last update.

【Google Maps JavaScript API v3】現在地の取得【getCurrentPosition】

Last updated at Posted at 2016-05-17

デモ:https://secure2305.sakura.ne.jp/mental-energy.jp/test/geolocation.html

navigator.geolocation.getCurrentPosition(success, error);

// 成功
function success(position) {
  var data = position.coords;
  var lat = data.latitude;
  var lng = data.longitude;
  var latlng = new google.maps.LatLng(lat, lng);
  $('.lat').text(lat);
  $('.lng').text(lng);

  // map
  var canvas = document.getElementById('map-canvas');
  var mapOptions = {
    zoom: 15,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(canvas, mapOptions);

  // marker
  var markerOptions = {
    map: map,
    position: latlng,
    draggable: true
  }
  new google.maps.Marker(markerOptions);

};

// 失敗
function error(error) {
  var errorMessage = {
    0: "原因不明のエラーが発生しました…。" ,
    1: "位置情報の取得が許可されませんでした…。" ,
    2: "電波状況などで位置情報が取得できませんでした…。" ,
    3: "位置情報の取得に時間がかかり過ぎてタイムアウトしました…。" ,
  } ;
  console.log( errorMessage[error.code] ) ;
}

GPSに対応しているスマホだけでなく、現在位置を設定できるデスクトップPCでも利用可能。
MBPからのhttp通信だとエラー。設定の問題か。

getCurrentPosition() and watchPosition() are deprecated on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

参考
Google Maps JavaScript API v3の使い方まとめ (サンプルコード付き)

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2