swdyh

WiFiの電波から位置情報を取得するwifi_locationをNode.jsに移植

2012-08-10 16:47:00

Mac/LinuxのWiFiで位置情報を取得 http://shokai.org/blog/archives/6399

このshokaiさんのwifi_locationはRubyで書いてあったのでJavaScriptに書きなおして、Node.jsで使えるものを作りました。やっていることはほとんど同じで、airpot(Mac)かiwlist(Linux)コマンドでWiFiの電波を取得、それを使ってGoogle MapのAPIから位置情報を取得します。WiFiの電波はネットがなくてもいいけれど、位置情報の方はネットが使えないと取得できません。

Linuxは持っていなくてネットで見つけたiwlistの出力を使って書いていて、実際の動作は確認してないので、おかしかったら教えて下さい。

インストール

npm install wifi_location

使い方

var wifiLocation = require('wifi_location')

wifiLocation.wifiTowers(function(err, val) {
    console.log(err, val)
})   
wifiLocation.location(function(err, val) {
    console.log(err, val)
})
% node
> var wifiLocation = require('wifi_location')
undefined
> wifiLocation.location(console.log)
undefined
> null { latitude: 35.7124159,
  longitude: 139.774889,
  address:
   { country: '日本',
     country_code: 'JP',
     region: '東京都',
     city: '台東区',
     street_number: '1' },
  accuracy: 57 }

swdyh/node_wifi_location https://github.com/swdyh/node_wifi_location