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>" ); ?>