LoginSignup
12
4

More than 1 year has passed since last update.

緯度経度から距離・面積の算出精度について

Last updated at Posted at 2022-12-22

はじめに

緯度経度から範囲内か検出する処理について記述したturfpyは
公式ドキュメントを確認すると距離や面積のように他の算出もできることがわかる
その精度についてまとめる

確認方法

豊田スタジアムの縦と横の距離や面積を算出する
天然芝部分115m×78m
=面積:8970平方メートル
google mapで確認
image.png
縦115メートル
image.png
横78メートル
google mapの精度は良い

距離算出

turfpyで距離算出する

# 縦
from turfpy import measurement
from geojson import Point, Feature
up = Feature(geometry=Point((35.085060714540326, 137.17072559325422)))
down = Feature(geometry=Point((35.08405221734936, 137.1710561065781)))
measurement.distance(up,down,units="m")
# > 90.09394736166121[期待値:115m]
# 横
left = Feature(geometry=Point((35.08450366860094, 137.1704693906022)))
right = Feature(geometry=Point((35.084674403537015, 137.17130142525738)))
measurement.distance(left,right,units="m")
# > 93.54724844615103[期待値:78m]

長く出るはずの縦が短くなる。
10m単位でずれる、精度は悪い。

面積算出

4端の緯度経度を指定して面積を算出

from turfpy.measurement import area
from geojson import Feature, FeatureCollection

geometry_1 = {
    "coordinates": [[
        [35.08495757288702, 137.17033453483242],
        [35.08513216008627, 137.17114392284444],
        [35.08412708307099, 137.17146555796265],
        [35.083959294868194, 137.1706393577829]
        ]],
    "type": "Polygon",
}

feature_1 = Feature(geometry=geometry_1)
feature_collection = FeatureCollection([feature_1])

area(feature_collection)
# > 7935.377349566643[期待値:8970平方メートル]

こちらも精度が悪い

精度の良い方法

geopyというライブラリが精度が良い

縦と横の距離算出→面積算出

縦と横の距離を算出して、積で面積を算出する

from geopy.distance import geodesic

up = (35.085060714540326, 137.17072559325422)
down = (35.08405221734936, 137.1710561065781)
left = (35.08450366860094, 137.1704693906022)
right = (35.084674403537015, 137.17130142525738)

vertical = geodesic(up, down).m
# > 115.87357738551685[期待値:115m]
horizon = geodesic(left, right).m
# > 78.20522543208969[期待値:78m]
stadium_area = vertical * horizon
# > 9061.919241057036[期待値:8970平方メートル]

緯度経度を取得する際のクリック精度もあるが
距離の精度が1m以内と良いので面積も近い値になる

まとめ

turfpyの情報が少ないので
使い方の問題か、なぜ近い値が出ないかまでわかりませんでしたが
新しいライブラリは使用する前に
使いたい精度が出せるか確認する必要があるなと思いました

12
4
1

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
12
4