GoogleMapAPI緯度経度が範囲を超える問題
2016年1月4日
GoogleMapで緯度経度を取得した時に、有効範囲外の数値が取得される場合があるようなので、その対処方をメモ。
緯度経度の範囲
緯度(latitude)の範囲は、-90° ~ 90°
経度(longitude)の範囲は、-180° ~ 180°
なので、これを超える事は無いはずなんですが、GoogleMapで西か東のどちらかに向かって、地球を何週もすると、1000°でも2000°でもいくらでも増えていくようです・・。
地図を表示する事自体には問題は無いんですが、緯度経度を別のAPIで利用したい場合や、DB等で2点間の距離を出そうとかすると問題になります。
数値を正しく戻す
GoogleMapAPIで、表示している地図の中心座標を取得してみます。
var latlng = map.getCenter(); var lat = latlng.lat(); var lng = latlng.lng();
上記のままだと、有効範囲外の緯度経度が取得されているので、これを以下のように修正。
var latlng = map.getCenter(); latlng = new google.maps.LatLng( latlng.lat(), latlng.lng() ); var lat = latlng.lat(); var lng = latlng.lng();
これで、範囲内の値に修正されます。