Rxを使って位置情報を得る #もう泣かないC#
2471 ワード
酢酸先生が教えてくれたよ!!ありがとう、酢酸先生!!
現在位置が欲しいので、更新が行われたらその時点でgeowatcher
を眠らせます。
Android2.3以降のAPIで、一回だけ位置情報の更新を行うってのがあったと思うけど、そんなイメージ。だって、追跡とか必要ないもんね!!
ただ、屋内なんかで利用した時に取得がうまくいかなかったなーなんて場合は、ユーザが任意で再取得できるようにするんだろうね、多分。
んで、コード。
positionchangerxc
var geoWatcher = new GeoCoordinateWatcher();
Observable.FromEvent<GeoPositionChangedEventArgs<GeoCoordinate>>(geoWatcher, "PositionChanged").ObserveOnDispatcher()
//位置情報だけクレ
.Select(ev => ev.EventArgs.Position.Location)
//場所が変わると呼ばれる
.Subscribe(location => {
//位置情報を使って何かやる
onLocationChanged(location);
//一回だけで良いわ
geoWatcher.Stop(); });
geoWatcher.Start();
Subscribe
が、何回も呼ばれるなんて知らなかった。
一回呼ばれたら、onCompleted
が発動するものと思ってた。
なんだかよくわかんないね!!
Rxに関して詳しく書いてる本があるなら教えて欲しいや・・・
Author And Source
この問題について(Rxを使って位置情報を得る #もう泣かないC#), 我々は、より多くの情報をここで見つけました https://qiita.com/numa08/items/5ba8ab5c0a931f88f483著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .