H11Tで現在地を取り出す(改)
追記:サービスとして公開を始めました。http://doyasa.jp/gps
久々にcrazyupなネタを。ということで以前書いたやつを題材にして自習してみました。
ただ、現在はEMnetに加入していないので確認できません。
今度余裕が出ればEMnet再契約してテストしてみたいと思います。
ちなみに前回記事はH11Tから現在地を取り出す。 - crazyuplogです。
あと、地味に修正し続けています。ご注意下さい。
変化したところ
地味にやりたいこと
- 全キャリア対応
- iPhone以外ならどうにかなりそう。(地味に今書いてます。)
- 地図写真を出す。
- 割とここらへんは権利関係で難しそう・・・
コード
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>New GPS</title> </head> <body> <?php $map = array(); function mapEnc ($pos){ $mapdata = substr ($pos,1); $map = explode ("E",$mapdata); return $map; } function datumSel ($geo) { if ($geo = "wgs84") { $datum = "0"; } else { $datum = "1"; } return $datum; } if (!empty($_GET['mail'])) { $mail = explode("x",$_GET['mail']); $pos = $mail[0]; $datum = $mail[1]; $xacy = $mail[2]; $map = mapEnc($pos); } elseif (!empty($_GET['lat'])&&!empty($_GET['lon'])) { $lat = substr ($_GET['lat'],1); $lon = substr ($_GET['lon'],1); $map[0] = $lat; $map[1] = $lon; $geo = $_GET['geo']; $datum = datumSel ($geo); $xacy = $_GET['x-acc']; $alt = $_GET['alt']; $pos = "N".$map[0]."E".$map[1]; } elseif (empty($_GET['pos'])) { $map = array(0,0); $xacy = "1"; $geo = "wgs84"; $datum = "0"; $pos = "データが取得できませんでした。"; echo $pos."<br />"; } elseif (preg_match("/^[0-9A-Z.]+$/",$_GET['pos'])) { //元データはこんなの→N35.44.33.156E135.22.33.124 $pos = $_GET['pos']; $map = mapEnc($pos); if (empty($_GET['geo'])) { $geo = "wgs84"; $datum = "0"; } else { $geo = $_GET['geo']; $datum = datumSel ($geo); break; } } if (empty ($_GET['x-acy'])) { $xacy = "1"; } else { $xacy = $_GET['x-acy']; } ?> □New GPS□<br /> <a href="<?php echo $_SERVER['PHP_SELF']; ?>" measure="auto" accesskey="1" lcs>[1]再取得</a><br /> ▽現在地表示▽<br /> <a href="http://www.navitime.co.jp/map/index.jsp?datum=<?php echo $datum; ?>&lat=+<?php echo $map[0]; ?>&lon=+<?php echo $map[1]; ?>" accesskey="2">[2]NAVITIME(PC/携帯)</a><br /> <a href="http://www.mapfan.com/m.cgi?MAP=<?php echo "E".$map[1]."N".$map[0] ?>" accesskey="3">[3]mapfan(PCだけ)</a><br /> ▽携帯にメール▽<br /> <a href="mailto:?Subject=いまここ&Body=<?php echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']; ?>?mail=<?php echo $pos; ?>x<?php echo $datum; ?>x<?php echo $xacy; ?>" accesskey="4">[4]送信</a><br /> 緯度:<?php echo $map[0]; ?><br /> 経度:<?php echo $map[1]; ?><br /> 元データ:<?php echo $pos; ?> </body> </html>
一応、前回と同じように基本は適当です。
さらにH11T上ではテストもしていませんのでどう動くか不明です。
ご利用される際は各自の責任の上でお願いします。
あと、文字コードはお好みで。今はUTF-8になっていますが、Shift_JISにしたほうが良さげかも。
また、自習のネタにこいつを使う予定です。
地味に機能追加をし続けてみたいと思います。
最後に、ご利用は自己責任でお願いします。