ACS上のPlaceの緯度経度情報を更新する時の注意点
結論を先に書くと、緯度と経度両方の値をセットしてupdateしないとダメなようです。
例えば、Node.js+expressなWebアプリを作ってる場合に、
exports.edit = (req, res) -> latitude = req.query.latitude companyName = req.query.companyName place_id = req.query.place_id ACS.Places.update place_id:place_id name: companyName latitude:latitude session_id:req.session._session_id ,(e) -> if e.success console.log e res.send('success') else console.log e res.send('error')
というのはNGで、正しくは
exports.edit = (req, res) -> latitude = req.query.latitude longitude = req.query.longitude companyName = req.query.companyName place_id = req.query.place_id ACS.Places.update place_id:place_id name: companyName latitude:latitude longitude: longitude session_id:req.session._session_id ,(e) -> if e.success console.log e res.send('success') else console.log e res.send('error')
としないとダメみたいです。
細かい経緯
社内向けに作ったスマフォアプリで利用する企業情報を修正出来る仕組みが必要になりました。
該当企業を検索して、緯度や経度情報を修正できるようにこんな感じのWebアプリを作ってます
企業情報を登録する際に、一部のデータで、緯度だけとか、経度だけとかで誤りがあるようだったので、上記のような感じのUIにしました。
ステータスコードは200が返るけど値が更新されない
ひとまず、上記のようなUIを作った上で、緯度の情報だけが更新できるかどうか確認をしていたのですが
という状況なのに、実際には、該当企業の緯度情報が更新されませんでした
試しに、緯度と経度の値をセットしてみた
やりたいことは、「緯度だけ」とか「経度だけ」の情報更新だったのですが、念のため、更新されない方の経度情報も前述したコードのようにACS.Places.updateのパラメータに含めてみたら更新されました
公式ドキュメントにはそのような記載がなかったので、大分これでハマったので今後似たようなことをやりたい人がいた場合の参考になるかと思って簡単にまとめておきました