nusoapによるGeOAP利用

Google Maps上で選択した二点間の距離をGeOAPから取得するためのphpスクリプト。体験用の認証キーはhttp://www.geoap.jp/でユーザー登録すれば発行してもらえる。利用法はSoapClientもnusoapもあまり変わらない。何かの参考になれば良いです。

<?php
require_once('./soap_lib/nusoap.php');
 
$adrFrom = trim($_GET['adrFrom']);
$adrTo = trim($_GET['adrTo']);
 
print( "<?xml version='1.0'?>" );
print( "<Distance>" );
if( strlen($adrFrom) != 0 && strlen($adrTo) != 0 ){
	$client = new soapclient('http://dev.geoap.jp/GeOAP_Trial/GeOAP_Trial.asmx?wsdl',true);
	$client->soap_defencoding = 'UTF-8';
	$proxy = $client->getProxy();
	$userkey = "体験コーナーで発行した認証キー";
	$password = "geoap";
 
	$adrFrom = mb_convert_encoding($adrFrom, 'UTF-8', mb_detect_encoding($adrFrom));
	$adrTo = mb_convert_encoding($adrTo, 'UTF-8', mb_detect_encoding($adrTo));
 
	//GeOAPの認証メソッドコール
	$result = $proxy->UserCertification(array('UserKey'=> "$userkey", 'Password' => "$password"));
 
	//直線距離取得
	$result = $proxy->StraightDistanceOfAdrToAdr(array('StartAddress' => "$adrFrom", 'AryGoalAddress' => array('string' => "$adrTo")));
	$distance = $result['StraightDistanceOfAdrToAdrResult']['AryTarget']['CTargetInfo']['Distance'];
	if( strlen($distance) == 0 ){
		$distance = " ";
	}
	print( "<Straight>$distance</Straight>" );
 
	//経路距離取得
	$result = $proxy->CourseDistanceOfAdrToAdr(array('StartAddress' => "$adrFrom", 'AryGoalAddress' => array('string' => "$adrTo")));
	$distance = $result['CourseDistanceOfAdrToAdrResult']['AryTarget']['CTargetInfo']['Distance'];
	if( strlen($distance) == 0 ){
		$distance = " ";
	}
	print( "<Course>$distance</Course>" );
}else{
	print( "<Straight> </Straight>" );
	print( "<Course> </Course>" );
}
print( "</Distance>" );
?>