GeoCoordinateWatcher Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Memasok data lokasi yang didasarkan pada koordinat lintang dan bujur.
public ref class GeoCoordinateWatcher : IDisposable, System::ComponentModel::INotifyPropertyChanged, System::Device::Location::IGeoPositionWatcher<System::Device::Location::GeoCoordinate ^>
[System.Security.SecurityCritical]
public class GeoCoordinateWatcher : IDisposable, System.ComponentModel.INotifyPropertyChanged, System.Device.Location.IGeoPositionWatcher<System.Device.Location.GeoCoordinate>
[<System.Security.SecurityCritical>]
type GeoCoordinateWatcher = class
interface IDisposable
interface INotifyPropertyChanged
interface IGeoPositionWatcher<GeoCoordinate>
Public Class GeoCoordinateWatcher
Implements IDisposable, IGeoPositionWatcher(Of GeoCoordinate), INotifyPropertyChanged
- Warisan
-
GeoCoordinateWatcher
- Atribut
- Penerapan
Contoh
Program berikut menunjukkan cara membuat GeoCoordinateWatcher dan mulai memperoleh data dengan menggunakan batas waktu inisialisasi. Kode kemudian mencetak koordinat lokasi, jika diketahui.
using System;
using System.Device.Location;
namespace GetLocationProperty
{
class Program
{
static void Main(string[] args)
{
GetLocationProperty();
}
static void GetLocationProperty()
{
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher();
// Do not suppress prompt, and wait 1000 milliseconds to start.
watcher.TryStart(false, TimeSpan.FromMilliseconds(1000));
GeoCoordinate coord = watcher.Position.Location;
if (coord.IsUnknown != true)
{
Console.WriteLine("Lat: {0}, Long: {1}",
coord.Latitude,
coord.Longitude);
}
else
{
Console.WriteLine("Unknown latitude and longitude.");
}
}
}
}
Imports System.Device.Location
Module GetLocationProperty
Public Sub GetLocationProperty()
Dim watcher As New System.Device.Location.GeoCoordinateWatcher()
watcher.TryStart(False, TimeSpan.FromMilliseconds(1000))
Dim coord As GeoCoordinate = watcher.Position.Location
If coord.IsUnknown <> True Then
Console.WriteLine("Lat: {0}, Long: {1}", coord.Latitude, coord.Longitude)
Else
Console.WriteLine("Unknown latitude and longitude.")
End If
End Sub
Public Sub Main()
GetLocationProperty()
Console.ReadLine()
End Sub
End Module
Program berikut menunjukkan cara menerima pembaruan lokasi berkelanjutan dengan berlangganan PositionChanged peristiwa.
using System;
using System.Device.Location;
namespace GetLocationEvent
{
class AsyncProgram
{
static void Main(string[] args)
{
CLocation myLocation = new CLocation();
myLocation.GetLocationEvent();
Console.WriteLine("Enter any key to quit.");
Console.ReadLine();
}
class CLocation
{
GeoCoordinateWatcher watcher;
public void GetLocationEvent()
{
this.watcher = new GeoCoordinateWatcher();
this.watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
bool started = this.watcher.TryStart(false, TimeSpan.FromMilliseconds(2000));
if (!started)
{
Console.WriteLine("GeoCoordinateWatcher timed out on start.");
}
}
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude);
}
void PrintPosition(double Latitude, double Longitude)
{
Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude);
}
}
}
}
Imports System.Device.Location
Module GetLocationEvent
Public Class CLocation
Private WithEvents watcher As GeoCoordinateWatcher
Public Sub GetLocationEvent()
watcher = New System.Device.Location.GeoCoordinateWatcher()
AddHandler watcher.PositionChanged, AddressOf watcher_PositionChanged
Dim started As Boolean = watcher.TryStart(False, TimeSpan.FromMilliseconds(1000))
If Not started Then
Console.WriteLine("GeoCoordinateWatcher timed out on start.")
End If
End Sub
Private Sub watcher_PositionChanged(ByVal sender As Object, ByVal e As GeoPositionChangedEventArgs(Of GeoCoordinate))
PrintPosition(e.Position.Location.Latitude, e.Position.Location.Longitude)
End Sub
Private Sub PrintPosition(ByVal Latitude As Double, ByVal Longitude As Double)
Console.WriteLine("Latitude: {0}, Longitude {1}", Latitude, Longitude)
End Sub
End Class
Public Sub Main()
Dim myLocation As New CLocation()
myLocation.GetLocationEvent()
Console.WriteLine("Enter any key to quit.")
Console.ReadLine()
End Sub
End Module
Keterangan
Kelas ini GeoCoordinateWatcher menyediakan data lokasi berbasis koordinat dari penyedia lokasi saat ini. Penyedia lokasi saat ini diprioritaskan sebagai yang tertinggi di komputer, berdasarkan sejumlah faktor, seperti usia dan akurasi data dari semua penyedia, akurasi yang diminta oleh aplikasi lokasi, dan konsumsi daya dan dampak performa yang terkait dengan penyedia lokasi. Penyedia lokasi saat ini mungkin berubah dari waktu ke waktu, misalnya, ketika perangkat GPS kehilangan sinyal satelitnya di dalam ruangan dan penyedia triangulasi Wi-Fi menjadi penyedia yang paling akurat di komputer.
Untuk mulai mengakses data lokasi, buat GeoCoordinateWatcher dan panggil Start atau TryStart untuk memulai akuisisi data dari penyedia lokasi saat ini.
Properti Status dapat diperiksa untuk menentukan apakah data tersedia. Jika data tersedia, Anda bisa mendapatkan lokasi satu kali dari Position properti , atau menerima pembaruan lokasi berkelanjutan dengan menangani PositionChanged peristiwa.
Properti Permission, Status, dan Position mendukung INotifyPropertyChanged, sehingga aplikasi dapat mengikat data ke properti ini.
Di Windows 7, semua System.Device.Location kelas berfungsi penuh jika penyedia lokasi diinstal dan dapat menyelesaikan lokasi komputer.
Catatan
Pada Windows 7 Starter Edition, satu-satunya penyedia lokasi yang didukung adalah Penyedia Lokasi Default di Panel Kontrol, dan add-in harus diinstal untuk menentukan garis lintang dan bujur.
Catatan Dalam versi Windows sebelum Windows 7, kondisi berikut berlaku:
Semua System.Device.Location objek yang memiliki konstruktor dapat dibuat, tetapi Status properti akan selalu memiliki nilai Disabled.
Lokasi yang ditunjukkan Location oleh properti Position akan selalu Unknown.
Tidak ada peristiwa lokasi yang akan dinaikkan.
Konstruktor
GeoCoordinateWatcher() |
Menginisialisasi instans GeoCoordinateWatcher baru dengan pengaturan akurasi default. |
GeoCoordinateWatcher(GeoPositionAccuracy) |
Menginisialisasi instans GeoCoordinateWatcherbaru , mengingat tingkat akurasi. |
Properti
DesiredAccuracy |
Tingkat akurasi yang diminta untuk data lokasi yang disediakan oleh GeoCoordinateWatcher. |
MovementThreshold |
Jarak yang harus dipindahkan, dalam meter, relatif terhadap koordinat dari peristiwa terakhir PositionChanged , sebelum penyedia lokasi memunculkan peristiwa lain PositionChanged . |
Permission |
Menunjukkan apakah izin untuk mengakses data lokasi dari penyedia lokasi telah diberikan atau ditolak. |
Position |
GeoCoordinate Mendapatkan yang menunjukkan lokasi saat ini. |
Status |
Mendapatkan status saat ini dari GeoCoordinateWatcher. |
Metode
Dispose() |
Merilis semua sumber daya yang digunakan oleh instans GeoCoordinateWatcher kelas saat ini. |
Dispose(Boolean) |
Merilis semua sumber daya yang digunakan oleh instans GeoCoordinateWatcher kelas saat ini. |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Finalize() |
Membebaskan sumber daya dan melakukan operasi pembersihan lainnya sebelum GeoCoordinateWatcher direklamasi oleh pengumpulan sampah. |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
OnPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate>) |
Dipanggil saat PositionChanged peristiwa terjadi. |
OnPositionStatusChanged(GeoPositionStatusChangedEventArgs) |
Dipanggil saat StatusChanged peristiwa terjadi. |
OnPropertyChanged(String) |
Dipanggil ketika properti GeoCoordinateWatcher perubahan. |
Start() |
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti . |
Start(Boolean) |
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini memungkinkan PositionChanged peristiwa dan memungkinkan akses ke Position properti . |
Stop() |
GeoCoordinateWatcher Menghentikan penyediaan data lokasi dan peristiwa. |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
TryStart(Boolean, TimeSpan) |
Memulai akuisisi data dari penyedia lokasi saat ini. Metode ini kembali secara sinkron. |
Acara
PositionChanged |
Menunjukkan bahwa garis lintang atau bujur data lokasi telah berubah. |
StatusChanged |
Menunjukkan bahwa status GeoCoordinateWatcher objek telah berubah. |
Implementasi Antarmuka Eksplisit
IGeoPositionWatcher<GeoCoordinate>.PositionChanged |
Menunjukkan bahwa data lokasi telah berubah. |
IGeoPositionWatcher<GeoCoordinate>.StatusChanged |
Menunjukkan bahwa status penyedia lokasi telah berubah. |
INotifyPropertyChanged.PropertyChanged |
Menunjukkan bahwa Status properti, Position properti , atau Permission properti telah berubah. |