Help us understand the problem. What is going on with this article?

【Android/Kotlin】世界測地系を日本測地系に変換する

世界測地系と日本測地系

測地系とは緯度経度を表すときの基準になるものです。
(詳しくはググってください)
普段GoogleMap等で目にするのは世界測地系ですが、まれに日本測地系を使用する場合があります。
今回その例に遭遇したので、変換方法をメモしておこうと思います。

ライブラリのインストール

使用するライブラリ→ Proj4J

// 測地系変換を実現するPROJライブラリ
implementation 'org.osgeo:proj4j:0.1.0'

測地系の変換

最後のconvertPointに変換後の緯度経度が入っています。

val crsFactory = CRSFactory()
// wgs84(世界測地系)
val wgs84 = crsFactory.createFromParameters(
            null,
            "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs")
// 日本測地系
val tokyo = crsFactory.createFromParameters(
            null,
            "+proj=longlat +ellps=bessel +towgs84=-146.336,506.832,680.254,0,0,0,0 +no_defs")
val transformFactory = CoordinateTransformFactory()
val transform: CoordinateTransform = transformFactory.createTransform(wgs84, tokyo)
// 変換したい緯度経度
val targetPoint = ProjCoordinate(lng, lat)
var convertPoint = ProjCoordinate()
convertPoint = transform.transform(targetPoint, convertPoint)
exit_rm
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away