質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

受付中

C# ASP.NET Core 緯度・経度を住所に変換したい

akarinrin_
akarinrin_

総合スコア7

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

1回答

0評価

0クリップ

543閲覧

投稿2021/11/15 11:02

前提・実現したいこと

ASP.NET Core Razor Pagesで個人的にアプリを開発しています。
ユーザーがボタンを押した際に、ユーザー端末のGPSで位置情報を取得し、現在住所を表示する処理を実装したく、方法を探していたところ、System.Device名前空間を見つけました。GeoCoordinateWatcherクラスとCivicAddressResolverクラスを使用して、緯度・経度を取得、それを住所に変換できるようですが、なぜかうまく変換ができません。原因が分かる方はいらっしゃいますでしょうか。また、代替手段についてもご教示頂ければ幸いです。

発生している問題・エラーメッセージ

具体的には、Microsoftの公式ドキュメントの同期的に処理をするサンプルプログラムの例を基に処理を理解しようとしていたのですが、そもそも、公式ドキュメントのサンプルプログラムをそのまま.NET Frameworkコンソールアプリケーションで作成し、実行しても、結果が取得できません。

試したこと

ステップ実行してみると、
GPSで緯度・経度を取得するwatcher.Position.Locationは動作しており、

該当のソースコード

C#

if (watcher.Position.Location.IsUnknown == false)

緯度・経度を住所に変換するResolveAddressがIsUnknownを返してしまいます。

該当のソースコード

C#

CivicAddress 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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

SurferOnWww

2021/11/15 23:13 編集

.NET Core / .NET のバージョンを書いてください。 質問者さんが参考にした記事によると、CivicAddressResolver クラスは .NET Framework 4.0 ~ 4.8 用とのことですが? ASP.NET Core アプリは web サーバーで動くアプリですがそこは認識してますか? そこに大きな思い違いがあって、そもそも不可能なことを考えていませんか? そうでないと言うことなら、その辺り (クライアント、サーバー全体的な構成、各々の役割など) を詳しく説明いただけませんか?

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

GPS

GPSは、Global Positioning Systemの略です。衛星信号を使用して受信機の地上又は空中内の居場所を特定するナビゲーションシステムです。"GPS"は受信機のことも指します。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。