Google Geocoding APIを使って住所から緯度・経度を取得、緯度・経度から住所を取得する方法

住所から緯度・経度を取得

	/**
	 * 住所から緯度・経度を取得
	 **/
	function getLatLng($__address)
	{
		$cordinate = array();
		
		// 住所を元に緯度経度を設定
		$url = 'http://maps.google.com/maps/api/geocode/json'.'?address='.urlencode($this->address).'&sensor=false';
		$result = file_get_contents($url);
		
		$geo = json_decode($result, true);
		
		if(isset($geo['results'][0]))
		{
			$cordinate['lat'] = (string)$geo['results'][0]['geometry']['location']['lat'];
			$cordinate['lon'] = (string)$geo['results'][0]['geometry']['location']['lng'];
		}
		else
		{
			$cordinate = null;
		}
		
		return $cordinate;
	}
	/***********************************************************/
	
	// 実行
	$cordinate = getLatLng("東京タワー");
	
	echo '緯度: '.$codinate['lat'];
	echo '経度: '.$codinate['lng'];

緯度・経度から住所を取得

	/**
	 * 緯度・経度から住所を取得
	 **/
	function getAddress($__lat, $__lat)
	{
		$address = '';
		
		// 緯度経度を元に住所を設定
		$url = 'http://maps.google.com/maps/api/geocode/json'.'?latlng='.$__lat.','.$__lat.'&sensor=true';
		$result = file_get_contents($url);
		
		$geo = json_decode($result, true);
		
		if(isset($geo['results'][0]))
		{
			$address = (string)$geo['results'][0]['formatted_address'];
		}
		else
		{
			$address = null;
		}
		
		return $address;
	}
	/***********************************************************/
	
	// 実行
	$address = getAddress(35.6585805, 139.7454329);
	
	echo '住所: '.$address;
【formatted_address】に人が読み取れる、この場所の住所を含む文字列が帰ってくるが
ローマ字表記とか日本語になって返ってくるので注意

Comments are closed.