Xamarin.Formsを使用して、Android、iOS & Windows.UWPの地球の3Dマップで選択した都市を表示する必要があります。現在、Xamarin.Forms.Mapsを使用していますが、地球の2Dマップのみを表示しています。Xamarn.formsの地図の地球儀(3Dビュー)を表示するには
地球の3Dマップはどうやって行くのですか?
注:マップのズームイン機能も必要です。
Xamarin.Formsを使用して、Android、iOS & Windows.UWPの地球の3Dマップで選択した都市を表示する必要があります。現在、Xamarin.Forms.Mapsを使用していますが、地球の2Dマップのみを表示しています。Xamarn.formsの地図の地球儀(3Dビュー)を表示するには
地球の3Dマップはどうやって行くのですか?
注:マップのズームイン機能も必要です。
Google Earthのようなものが必要な場合は、おそらく独自の実装を作成する必要があります。ただし、Xamarinフォームでできることは、既存のXamarin.Forms.Maps
コントロールを使用して、カメラと呼ばれるものを追加することです。基本的に、これはあなたが地図を見る視点です。これらは3D空間にあるので、3Dマップを持っているように見えます。カスタムレンダラーを使用してこれを作成できます。
これらのカスタムレンダラー内では、ピッチ、見出し、および距離などの項目が表示されます。私は準備ができてカスタムレンダラを持っていないが、あなたはできるはずです
のiOSカスタムレンダラ
[assembly: ExportRenderer(typeof(Map3d), typeof(MapView3dRenderer))]
namespace MyApp.iOS.Renderers
{
public class MapView3dRenderer : MapRenderer
{
MKMapView _nativeMap;
protected override void OnElementChanged(ElementChangedEventArgs<View> e)
{
base.OnElementChanged(e);
if (e.NewElement != null && Control != null)
{
_nativeMap = Control as MKMapView;
}
}
protected override void OnElementPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (_nativeMap == null)
return;
if (e.PropertyName == "VisibleRegion")
UpdateCameraView();
}
void UpdateCameraView()
{
var target = new CLLocationCoordinate2D(50.890119f, 5.857798f);
//Enable 3D buildings
_nativeMap.ShowsBuildings = true;
_nativeMap.PitchEnabled = true;
// Attach the camera
var camera = MKMapCamera.CameraLookingAtCenterCoordinate(target, 650, 60, 0);
_nativeMap.Camera = camera;
}
}
}
アンドロイド
Android用:このイメージのショーは、どのようなものですを解決する。また、Camera
オブジェクトを添付します。今回は、それをGoogleMap
のインスタンスに追加します。
// Create the camera
CameraPosition cameraPosition = new CameraPosition.Builder()
.Target(location)
.Tilt(45)
.Zoom(10)
.Bearing(0)
.Build();
// Convert to an update object
CameraUpdate cameraUpdate = CameraUpdateFactory.NewCameraPosition(cameraPosition);
// Attach the camera
map.MoveCamera(cameraUpdate); // map is of type GoogleMap
この方法についてはAndroid docsをご覧ください。
答えていただきありがとうございます。しかし、地球の球面図(地球)上の特定の都市のピンを表示する必要があります。私たちは、3D \斜めの通りを見ることができるレベルにズームインする必要はありません。 – jaczjill