駅近で探すという機能を実装したい
HeartRails Express
http://express.heartrails.com/api.html
ググると結構メジャーなウェブサービスみたい。
API は商用、非商用を問わず、無料でご利用になれます。
ご利用条件の詳細に関しましては、国土情報利用約款、HeartRails の利用規約、および免責事項をご覧ください。
との事なので、利用してみます。
これ、HTMLに以下のサンプルを貼り付けるだけで、運用できるとか、便利杉ですわ。
- 注意:GoogleMapsとの関連もあって少々改造してます。body onloadでも行けると思ふけど、Revelのテンプレートを弄りたくない。
<select id="area" name="area" onchange="HREOnChangeArea();"> <option value="エリアを選択してください">エリアを選択してください</option> </select> <select id="line" name="line" onchange="HREOnChangeLine();"> <option value="路線を選択してください">路線を選択してください</option> </select> <select id="station" name="station"> <option value="駅を選択してください">駅を選択してください</option> </select> <script type="text/javascript" src="http://express.heartrails.com/api/express.js"></script> <script> google.maps.event.addDomListener(window, 'load', initialize); window.onload = function(){ HRELoadPrefecture('prefecture', 'line', 'station'); } </script>
@searchStation = () -> prefecture = $("[name=prefecture] option:selected").text() line = $("[name=line] option:selected").text() name = $("[name=station] option:selected").text() url = "http://express.heartrails.com/api/json" ## AJAX処理へ
注意:CoffeeScriptです。
んで、返ってきたレスポンスから緯度経度を切り出して、GoogleMapsへ反映とすれば、あら簡単。
ちなみに、レスポンスは、配列で、中身がJSONですね。
最寄り駅
これも、簡単だった。
まず、検索支点となる緯度経度をHertRailsへ送ってやるだけ。
- HertRails便利だけど、最新というか、メンテ外の駅もあるみたい。時々答えが空の時があるよ。
- その場合は、有料のデータ買いましょうって事でしょうね