【PHP】画像のGPS情報取得ツール

PHP

JPEG画像のEXIF情報からGPSの位置情報を取得するツールをPHPで作成しました。

Githubで公開しています。Composerでインストールできます。

GitHub - macocci7/PHP-PhotoGps: Get GPS data from a photo.
Get GPS data from a photo. Contribute to macocci7/PHP-PhotoGps development by creating an account on GitHub.

緯度、経度、高度のデータを取得し、

出力は10進数表示・60進数表示が選択できます。

環境要件

  • PHP (CLI) 8.0.0 以降
  • Imagick PECL Extension
  • Composer

インストール

composer require macocci7/php-photo-gps

基本的な使い方

パッケージに同梱されている example をコピーしていじってみましょう。

cp -ra vendor/macocci7/php-photo-gps/example ./

BasicUsage.php を見てみましょう。

<?php

require('../vendor/autoload.php');

use Macocci7\PhpPhotoGps\PhotoGps;

$pg = new PhotoGps();
$filename = 'img/with_gps.jpg';    // includes GPS tags
$gps = $pg->gps($filename);

echo "[" . $filename . "]--------------------\n";

// Latitude in sexagesimal format
echo "Latitude: " . $pg->latitudeS($gps) . "\n";
echo "緯度: " . $pg->lang('ja')->latitudeS($gps) . "\n";

// Longitude in sexagesimal format
echo "Longitude: " . $pg->lang('eng')->longitudeS($gps) . "\n";
echo "経度: " . $pg->lang('ja')->longitudeS($gps) . "\n";

// Altitude
echo "Altitude: " . $pg->altitude($gps) . "\n";

// Coord in decimal format ('S' and 'W' results in negative value.)
echo "Coord: " . $pg->latitudeD($gps) . ", " . $pg->longitudeD($gps) ."\n";

実行してみましょう。

cd example/
php -f BasicUsage.php

このようなテキストが出力されます。

[img/with_gps.jpg]--------------------
Latitude: 37°03'26.1"N
緯度: 37度03分26.1秒(北緯)
Longitude: 140°53'22.4"E
経度: 140度53分22.4秒(東経)
Altitude: 17
Coord: 37.057242222222, 140.889555

緯度、経度の60進数表記は英語と日本語に対応してます。

7行目の緯度、経度の10進数表記を使うと、

Google Mapなどで地図上の位置指定に使えたりします。

※2024/02/06追記:バージョンアップで諸々機能追加されています。

詳細はこちらの記事をご覧ください。

コメント

タイトルとURLをコピーしました