■
ジオポを使って自分の位置をメール送信できるサービスを作って見ました。
今まで作ったことをまとめただけですが、携帯からアクセスし易い様に短いURLにしました。
携帯電話でアクセスして下さい。
以下サイトが大変参考になりました。
ありがとうございます。
■PHPで携帯位置情報を扱うライブラリ「Geomobilejp_Converter」を作りました
http://labs.unoh.net/2008/08/phpgeomobilejp_converter.html
■携帯電話のUserAgent判定クラス
http://d.hatena.ne.jp/ya--mada/20081213/1229173330
<?php mb_internal_encoding('UTF-8'); mb_http_output('SJIS-win'); require_once dirname(dirname(__FILE__)) . '/lib/Geomobilejp/Converter.php'; require_once dirname(dirname(__FILE__)) . '/lib/Geomobilejp/IArea.php'; require_once dirname(dirname(__FILE__)) . '/lib/Geomobilejp/Mobile.php'; $url = 'http://' . $_SERVER['SERVER_NAME'] . preg_replace('/\?.+?$/', '', $_SERVER['REQUEST_URI']); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> <title>mk18 携帯情報サービス</title> </head> <body> <P align="center">mk18 位置情報サービス</P> <hr> <?php require_once ("Keitai.class.php"); $ua =& Keitai::singleton(); if ( !$ua->isValidIp() ) { // Keitai_IP_List.class.phpが必要です print "<br>携帯電話からアクセスして下さい。<br>"; print "\n<br><br>(C)2009 <a href='http://d.hatena.ne.jp/mk18/'>mk18</a><br>\n"; die(); } $id = $ua->getKeitaiId(); //print "{$id}<br>\n"; $carrier = $ua->getCarrier();/*キャリア名 DoCoMo, KDDI, SoftBank, Willcom*/ print "{$carrier}<br>\n"; $mobile = new Geomobilejp_Mobile(); if ($mobile->hasParameter()) { $converter = new Geomobilejp_Converter( $mobile->getLatitude(), $mobile->getLongitude(), $mobile->getDatum() ); // $c1 = $converter->convert('wgs84')->format('dms'); $c2 = $converter->convert('wgs84')->format('degree'); // $c3 = $converter->convert('tokyo')->format('dms'); // $c4 = $converter->convert('tokyo')->format('degree'); // $area = Geomobilejp_IArea::seekArea($converter); $lat2 = $c2->getLatitude(); $lon2 = $c2->getLongitude(); // print"wgs84(degree)<br>"; print"緯度:{$lat2}<br>"; print"経度:{$lon2}<br>"; print "<br><hr>"; //ジオポ require_once ("geopo.php"); $location['lat'] = $lat2; $location['lng'] = $lon2; $location['scale'] = 6; $geopo = geopoEncode($location); // print "<br>geopo={$geopo}<br>\n"; print "<a href='http://geopo.at/{$geopo}'>ジオポで地図を表示</a>"; print "<br>\n"; print "<a href='mailto:xxx@xxx?subject=my location&body=http://geopo.at/{$geopo}'> メールで現在位置を送信</a>"; print "<br>\n"; }//endif //携帯メーカーを判定して振り分け表示する print "<br>"; //$carrier = "DoCoMo"; //for test $url = htmlspecialchars($url); //print "{$url}<br>\n"; if($carrier=="DoCoMo"){ print' docomo<br /> <form action="sample.php" method="get" lcs="lcs"> <input type="submit" value="位置情報を送信" /> </form> <br /> '; } if($carrier=="KDDI"/* || $carrier=="NonMobile"*/){ print' au<br /> <form action="device:gpsone" method="get"> <input type="hidden" name="url" value= '; print"{$url}"; print' /> <input type="hidden" name="datum" value="0" /> <input type="hidden" name="ver" value="1" /> <input type="hidden" name="unit" value="0" /> <input type="hidden" name="acry" value="0" /> <input type="hidden" name="number" value="0" /> <input type="submit" value="位置情報を送信" /> </form> <br /> '; } if($carrier=="SoftBank"){ print' SoftBank<br /> <a href="location:gps?url=sample.php"位置情報を送信</a> <br /> '; } if($carrier=="Willcom"){ print' WILLCOM<br /> <a href="http://location.request/dummy.cgi?my=<?php echo htmlspecialchars($url) ?>&pos=$location">位置情報を送信</a> <br /> '; } print "\n<br><br>(C)2009 <a href='http://d.hatena.ne.jp/mk18/'>mk18</a><br>\n" ?> </body> </html>