Loading...
WordPress

wordpressで住所から緯度経度を取得

2014.03.20 update

こんにちは。制作の中の人です。

今回はGoogleのGoogle Geocoding APIを使って、住所から緯度経度を取得し、さらにそれをWordpressと絡めた方法を書いてみます。

Advanced Custom Fieldを使って、記事に住所データが入れてあり、その住所データから緯度経度を取得して、Google Mapなどを表示させたりするのにこの方法を使いました。
もっとスマートなやりかたがあるかもしれませんが。

こちらのサイトでPHPを使った緯度経度の取得方法がありました。
http://prograrts-job.blogspot.jp/2011/07/php.html
ほぼそのままでfunctions.phpに書けば使えそうです。

[php]

//緯度経度取得
function strAddrToLatLng( $strAddr )
{
$strRes = file_get_contents(
‘http://maps.google.com/maps/api/geocode/json’
. ‘?address=’ . urlencode( mb_convert_encoding( $strAddr, ‘UTF-8’ ) )
. ‘&sensor=false’
);
$aryGeo = json_decode( $strRes, TRUE );
if ( !isset( $aryGeo[‘results’][0] ) )
return ”;

$strLat = (string)$aryGeo[‘results’][0][‘geometry’][‘location’][‘lat’];
$strLng = (string)$aryGeo[‘results’][0][‘geometry’][‘location’][‘lng’];
return $strLat . ‘,’ . $strLng;
}

[/php]

呼び出すテンプレート側は、下記のような感じで呼び出すと住所データから緯度経度に早変わりです。実際はちょっとラグがあります。

[php]
<?php
$add = get_field("address");
$geocode = strAddrToLatLng($add);
echo $geocode;
?>
[/php]

$add = get_field(“address”) は、addressという名前のカスタムフィールドからphp変数として値を持ってきています。
the_field()だとechoしてしまうので、get_field()のほうで、変数に格納し、
$geocode = strAddrToLatLng($add); で先ほどの定義したfunctionへ住所データを引き渡して結果を取得しています。

関連記事

  • 2014.10.10

    スターターテーマ「_s」でオリジナルテーマをつくる(1)

  • 2014.09.05

    WordPressのxmlrpc.phpについて

  • 2014.09.01

    かゆい所に手が届くWordPress 4.0アップデート

COLUMNコラム

2016.05.11

システムエンジニア O.B

2018.05.24

Googleカレンダーにイベント登録、ChatWorkへメッセージを送信する方法①

2016.05.11

システム導入のメリット

2014.01.17

サイトにひと味加えるWordPress テーマ

2014.04.04

レスポンシブなwordpressテーマ

2014.10.03

iPhone6/plus のスクリーン

2016.05.11

システム開発とは?

2014.02.14

wordpressの高速化

2018.07.17

Googleカレンダーにイベント登録、ChatWorkへメッセージを送信する方法③

2014.03.03

WordPressをMAMPで動かす(1)

2016.05.11

無線エンジニアのご紹介 I.S

2014.07.18

Mac OSX Yosemite

2013.11.15

WordPressでよく使うプラグイン2

2014.10.10

スターターテーマ「_s」でオリジナルテーマをつくる(1)

2014.07.11

WordPressを無料で使う

2014.08.08

もうレガシーとはおさらば?IEのサポートが最新バージョンのみに

2014.06.30

WordPressで投稿メニューを増やす(2)

2016.05.11

システムエンジニア S.G

2016.05.11

無線エンジニアのご紹介 K.N

2013.10.02

photoshop簡単に明るくふわっとした肌にする。