0
私のxamarinクロスプラットフォームアプリケーションでは、現在のユーザーの場所にマップを集中させようとしていますが、アプリケーションが起動しても私はxamarin用のgeolocatorプラグインをダウンロードしたサンプルを適用できませんでしたが、 。とxamarin形式のマップを使用すると、どのように地図をユーザーの現在地に合わせることができますか?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xamarin.Forms.Maps;
using Xamarin.Forms;
using Plugin.Geolocator;
namespace Map_Test
{
public partial class App : Application
{
public App()
{
Map mapa = new Map();
mapa.IsShowingUser = true;
var locator = CrossGeolocator.Current;
var position = locator.GetPositionAsync();
mapa.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(position.Latitude, position.Longitude), Distance.FromMiles(1)));
var rootPage = new ContentPage();
rootPage.Content = mapa;
MainPage = rootPage;
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
私は新しいContentPageを追加し、これをしなかったが、私はupdatePositionメソッドからposition.Latitudeとposition.Longitude値にアクセスする方法がわかりません。
using Plugin.Geolocator;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using Xamarin.Forms;
using Xamarin.Forms.Maps;
using Plugin.Geolocator;
namespace Map_Test
{
public class MapTest : ContentPage
{
Label locationLabel = new Label();
public MapTest()
{
Map mapa = new Map();
mapa.IsShowingUser = true;
mapa.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(position.Latitude, position.Longitude),
Distance.FromMiles(1)));
Content = new StackLayout
{
Children = {
mapa
}
};
}
public async void updatePosition()
{
var locator = CrossGeolocator.Current;
var position = await locator.GetPositionAsync();
}
}
}
あなたはどのような例を使用しましたが?何が起こるのですか? –
'Task'に 'Latitude'の定義が含まれておらず、 'Latitude'の型が 'Task 'の最初の引数を受け入れることができませんでした(使用するディレクティブまたはアセンブリ参照がありませんか?) 'タスク 'に' Longitude 'の定義が含まれておらず、拡張メソッドがない'経度 'タイプの最初の引数'タスク 'を受け入れることができます(使用指示文またはアセンブリ参照がありません) –
これは例です私は使用しました: https://stackoverflow.com/a/36630649/7945025 –