0

私のコードは機能していません。世界地図全体を表示しています。現在の場所を取得して、そこにプッシュピンを配置したいだけです。私はGoogleを介して行ってきましたが、どの例も機能しません。

これは私のコードです。

GeoCoordinateWatcher watcher;

    // Constructor
    public MainPage()
    {
        InitializeComponent();
    }


    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        if (watcher == null)
        {
            Console.WriteLine(watcher);
            watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);
            watcher.MovementThreshold = 20;
            watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>(watcher_StatusChanged);
            watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);

        }
        watcher.Start();
    }

    private void watcher_StatusChanged(object sender, GeoPositionStatusChangedEventArgs e)
    {
        Pushpin pin = new Pushpin();
        pin.Template = this.Resources["currentPushPin"] as ControlTemplate;
        pin.Location = watcher.Position.Location;
        mapControl.Items.Add(pin);
        myMap.SetView(watcher.Position.Location, 15.0);
        watcher.Stop();
    }

    void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
    {
        if (e.Position.Location.IsUnknown)
        {
            MessageBox.Show("Please wait while your prosition is determined....");
            return;
        }
        Pushpin pin = new Pushpin();
        myMap.Center = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude);
        pin.Template = this.Resources["currentPushPin"] as ControlTemplate;
        pin.Location = new GeoCoordinate(e.Position.Location.Latitude, e.Position.Location.Longitude);
        myMap.SetView(watcher.Position.Location, 18.0);
    }
4

1 に答える 1

0

PhoneApplicationPage_Loaded で GeoCordinateWatcher を開始しますが、このメソッドは呼び出されません。追加

Loaded+=PhoneApplicationPage_Loaded 

コンストラクタの最後に。

于 2012-12-23T10:30:51.010 に答える