前提・実現したいこと
ASP.NET Core Razor Pagesで個人的にアプリを開発しています。
ユーザーがボタンを押した際に、ユーザー端末のGPSで位置情報を取得し、現在住所を表示する処理を実装したく、方法を探していたところ、System.Device名前空間を見つけました。GeoCoordinateWatcherクラスとCivicAddressResolverクラスを使用して、緯度・経度を取得、それを住所に変換できるようですが、なぜかうまく変換ができません。原因が分かる方はいらっしゃいますでしょうか。また、代替手段についてもご教示頂ければ幸いです。
発生している問題・エラーメッセージ
具体的には、Microsoftの公式ドキュメントの同期的に処理をするサンプルプログラムの例を基に処理を理解しようとしていたのですが、そもそも、公式ドキュメントのサンプルプログラムをそのまま.NET Frameworkコンソールアプリケーションで作成し、実行しても、結果が取得できません。
試したこと
ステップ実行してみると、
GPSで緯度・経度を取得するwatcher.Position.Locationは動作しており、
該当のソースコード
C#
1if (watcher.Position.Location.IsUnknown == false)
緯度・経度を住所に変換するResolveAddressがIsUnknownを返してしまいます。
該当のソースコード
C#
1CivicAddress address = resolver.ResolveAddress(watcher.Position.Location);
なぜ、緯度・経度を引数にしても住所が返されないのか、原因をご存知の方はいらっしゃいますでしょうか。
また、ResolveAddressメソッドが利用できない場合、Google Maps APIの利用を考えているのですが、他にオススメの方法などはありますでしょうか。
補足情報(FW/ツールのバージョンなど)
サンプルプログラムを試すためにConsole Application(.NET Framework)を使いましたが、実装したいのはASP.NET Core Razor Pagesです。
Visual Studio 2019
Windows 10 Pro