データーを登録する際、d1からd8の8種類のデーターに、位置情報が付加できます(2017年4月からできるようになりました)。

Arduinoやmbedでのデーター登録

ArduinoやmbedのC++では9番目、10番目の情報として緯度、経度を渡します。

double temp, humid, lat, lng;
char tempbuf[12], humidbuf[12], latbuf[12], lngbuf[12];

    // センサーなどの情報を取得 (例えばtempに温度、humidに湿度を設定)

    dtostrf(temp, 3, 1, tempbuf);
    ambient.set(1, tempbuf); // 1番目のデーターとして温度をセット
    dtostrf(humid, 3, 1, humidbuf);
    ambient.set(2, humidbuf); // 2番目のデーターとして湿度をセット

    // GPSなどで位置情報を取得し、lat(緯度)、lng(経度)に設定

    dtostrf(lat, 11, 7, latbuf);

    ambient.set(9, latbuf); // 9番目のデーターとして緯度をセット
    dtostrf(lng, 11, 7, lngbuf);
    ambient.set(10, lngbuf); // 10番目のデーターとして経度をセット

    ambient.send();

位置情報付きデーターの可視化

Ambientで位置情報付きデーターを可視化する時は、チャート設定画面のグラフ種類で「地図」を選択します。グラフサイズ、表示件数、日付指定などは今までと同じように選択できます。

するとチャート画面は次のように、地図が表示され、測定点にマーカーが打たれた状態になります。

それぞれのマーカーをクリックすると、その地点の測定データーが表示されます。チャネル設定画面でd1からd8に「温度」「湿度」などのデーター名を設定しておくと、地図上のマーカーをクリックした時も設定したデーター名とその値が表示されて分かりやすいと思います。設定がない場合はd1、d2などと表示されます。

チャート設定画面で折れ線グラフなどを選択すれば位置情報つきのデーターであっても今まで通り折れ線グラフで表示できます。

複数データー一括送信

位置情報の付いた複数データーを一括送信する時は、次のように緯度を”lat”、経度を”lng”というキーをつけて位置情報を渡します。

    {
        “writeKey” : “ライトキー”,
        “data” : [
            {“created” : “YYYY-MM-DD HH:mm:ss.sss”, “d1” : 値, “d2” : 値, ..., "lat" : 緯度, "lng" : 経度},
            {“created” : “YYYY-MM-DD HH:mm:ss.sss”, “d1” : 値, “d2” : 値, ..., "lat" : 緯度, "lng" : 経度},
            ...
            {“created” : “YYYY-MM-DD HH:mm:ss.sss”, “d1” : 値, “d2” : 値, ..., "lat" : 緯度, "lng" : 経度}
        ]
    }

node.js、Pythonで位置情報付きデーターを扱う

node.jsで位置情報付きデーターを送る際は、次のようにデーターにlat、lngをキーにして緯度経度情報を指定します。

    var data = {d1: 数値, d2: 数値, lat: 緯度, lng: 経度};
    ambient.send(data, callback(err, res, body));

Pythonでの送信もほぼ同様です。

    r = am.send({'created': 'YYYY-MM-DD HH:mm:ss.sss', 'd1': 数値, 'd2': 数値, 'lat': 緯度, 'lng': 経度})

Pythonで位置情報付きデーターを読み込むと、次のような辞書形式のリストが返されます。

    [
        {'created': '2017-02-25T15:01:48.000Z', 'd1': 数値, 'd2': 数値, ..., 'loc': [経度, 緯度]},
        {'created': '2017-02-25T15:06:47.000Z', 'd1': 数値, 'd2': 数値, ..., 'loc': [経度, 緯度]},
        ...
    ]

位置情報は’loc’というキーで[経度, 緯度]というリストが返されます。リストの順番は経度、緯度の順番なのでご注意ください。