0
私はxamarinフォームマップについて2つの質問があります。 1.マップのドラッグ後に、マップセンターの座標を取得するにはどうすればよいですか? 2.マップ上のタップイベントから座標を取得できますか?Xamarinはマップ座標を形成します
ありがとうございます。
私はxamarinフォームマップについて2つの質問があります。 1.マップのドラッグ後に、マップセンターの座標を取得するにはどうすればよいですか? 2.マップ上のタップイベントから座標を取得できますか?Xamarinはマップ座標を形成します
ありがとうございます。
カスタムマップレンダラーが必要です。
これがタップ取得する方法Android用マップ上の座標である:
public class CustomImportantPlaceRenderer : MapRenderer, IOnMapReadyCallback
{
GoogleMap map;
protected override void OnElementChanged(ElementChangedEventArgs<Map> e)
{
if (map != null)
{
map.MapClick -= googleMap_MapClick;
}
base.OnElementChanged(e);
if (Control != null)
{
Control.GetMapAsync(this);
}
}
public void OnMapReady(GoogleMap googleMap)
{
map = googleMap;
if (map != null)
{
map.UiSettings.ZoomControlsEnabled = false;
map.MapClick += googleMap_MapClick;
map.MyLocationEnabled = true;
}
}
private void googleMap_MapClick(object sender, GoogleMap.MapClickEventArgs e)
{
double latitude = e.Point.Latitude;
double longitude = e.Point.Longitude;
MessagingCenter.Send<String, ClickedPositionCO>("PositionClicked", "PositionClickedDetail", new ClickedPositionCO(latitude, longitude));
}
}
そして、これがOKのiOS
public class CustomImportantPlaceRenderer : MapRenderer
{
private readonly UITapGestureRecognizer tapRecognizer;
public CustomImportantPlaceRenderer()
{
tapRecognizer = new UITapGestureRecognizer(OnTap)
{
NumberOfTapsRequired = 1,
NumberOfTouchesRequired = 1
};
}
private void OnTap(UITapGestureRecognizer recognizer)
{
var cgPoint = recognizer.LocationInView(Control);
var location = ((MKMapView)Control).ConvertPoint(cgPoint, Control);
MessagingCenter.Send<String, ClickedPositionCO>("PositionClicked", "PositionClickedDetail", new ClickedPositionCO(location.Latitude, location.Longitude));
}
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
{
if (Control != null)
{
Control.RemoveGestureRecognizer(tapRecognizer);
}
base.OnElementChanged(e);
if (Control != null)
{
var nativeMap = Control as MKMapView;
nativeMap.ShowsUserLocation = true;
Control.AddGestureRecognizer(tapRecognizer);
}
}
のマップ上の座標をタップ取得する方法ですが、どのように私はあればそれを行うことができます地図はPCLで "new Map()"によって作成されますか?あなたはdependencyServiceによってそれを使用する方法をいくつかのコードを書くことができますか?ありがとうございました。 – Klick