|
自分が検証に使ったサンプルコードを載せておきます。
Wi-Fi が搭載された Windows 10 PC でも試してみました。
ネットに接続されているか否かは関係なく Wi-Fi が動いていれば PC が置いてある場所の
緯度経度データを取得できます。
毎回計測するようで結果は微妙に異なりますが、かなり精度の高い緯度経度を取得できま
した。
「既定の場所」を設定後 Wi-Fi をオフにして試すと、設定した「既定の場所」の緯度経度
が取得されます。
using System;
using System.Device.Location;
namespace GeoCoordinateWatcherSample
{
internal class Program
{
static void Main(string[] args)
{
GetLocationProperty2();
}
static void GetLocationProperty2()
{
GeoCoordinateWatcher geoWatcher = new GeoCoordinateWatcher();
Console.WriteLine($"Permission: {geoWatcher.Permission}, Status: {geoWatcher.Status}");
geoWatcher.Start();
while ((geoWatcher.Status != GeoPositionStatus.Ready) &&
(geoWatcher.Permission != GeoPositionPermission.Denied))
{
System.Threading.Thread.Sleep(100);
}
if (geoWatcher.Permission == GeoPositionPermission.Denied)
{
Console.WriteLine($"Permission: {geoWatcher.Permission}, Status: {geoWatcher.Status}");
}
else
{
Console.WriteLine($"Permission: {geoWatcher.Permission}, Status: {geoWatcher.Status}");
GeoCoordinate coord = geoWatcher.Position.Location;
if (coord.IsUnknown != true)
{
Console.WriteLine("Lat: {0}, Long: {1}",
coord.Latitude,
coord.Longitude);
}
else
{
Console.WriteLine("Unknown latitude and longitude.");
}
}
}
}
}
|