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コラム

2014.04.25

WordPress3.9アップデートをかいつまむ

2013.12.06

WordPressを使ったサイト事例

2013.12.27

WordPress 3.8

2016.05.11

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

2014.03.07

SEOに強いWordPress テーマ

2014.06.20

WordPressのドメイン変更・サーバ移転など

2014.07.04

ぐるなび公式レストラン検索 「WordPressプラグイン」

2014.09.26

iOS8 Safariの新技術とブラウザ対応状況について

2014.05.30

WordPressの管理画面のURL変更

2014.05.23

WordPressとセキュリティ

2013.11.15

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

2016.05.11

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

2018.07.30

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

2018.07.17

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

2014.05.16

WordPressの検索を強化する

2014.09.12

iphone6対応は必要か?

2014.02.14

wordpressの高速化

2016.05.11

システムエンジニア M.R

2018.06.14

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

2013.11.08

新人ウェブデザイナーの制作話(2)