Xamarin Forms에서 자체 프로젝트로 Google Map을 StreetViewPanoramaView에보고 싶습니다. 그런 다음 ViewRenderer를 사용하여 iOS를 시험해 보았습니다. iOS에서 작동합니다. 그러나 ViewRenderer를 사용하여 Android를 사용해 보았습니다. 작동하지 않습니다. 보기에는 아무 것도 발생하지 않습니다. 제발 도와주세요 ViewRenderer에서 StreetViewPanoramaView를 어떻게 할 수 있습니까?StreetViewPanoramaView with ViewRenderer Xamarin.Forms
자 마린에 공유 프로젝트 StreetView.xaml에이 프로젝트 을 형성 공용 클래스 스트리트 :보기 그것은 내가
assembly: ExportRenderer(typeof(StreetView), typeof(StreetViewRenderer))]
namespace Yournamespace.iOS.Renderer
{
public class StreetViewRenderer : ViewRenderer<StreetView, PanoramaView>
{
PanoramaView panoramaView;
protected override void OnElementChanged(ElementChangedEventArgs<StreetView> e)
{
base.OnElementChanged(e);
if (Control == null)
{
CGRect rect = new CGRect(0, 0, App.ScreenWidth, App.ScreenHeight);
panoramaView = new PanoramaView(rect);
SetNativeControl(panoramaView);
if (SharedSystem.Current.CurrentVehicle.PlateNumber == null)
{
SetCoordinate(40.968845, 29.065849);
}
else
SetCoordinate(SharedSystem.Current.CurrentVehicle.DeviceLatitude.Value, SharedSystem.Current.CurrentVehicle.DeviceLongitude.Value);
}
if (e.OldElement != null)
{
// Unsubscribe
panoramaView.DidMoveToPanoramaNearCoordinate -= PanoramaView_DidMoveToPanoramaNearCoordinate;
MessagingCenter.Unsubscribe<Vehicle>(this, "SelectedPin");
}
if (e.NewElement != null)
{
// Subscribes
MessagingCenter.Subscribe<Vehicle>(this, "SelectedPin", (sender) =>
{
if(SharedSystem.Current.CurrentVehicle.PlateNumber == sender.PlateNumber)
SetCoordinate(sender.DeviceLatitude.Value,sender.DeviceLongitude.Value);
});
MessagingCenter.Subscribe<Vehicle>(this, "ScrollToVehicle", (sender) =>
{
if (SharedSystem.Current.CurrentVehicle.PlateNumber == sender.PlateNumber)
SetCoordinate(sender.DeviceLatitude.Value, sender.DeviceLongitude.Value);
});
panoramaView.DidMoveToPanoramaNearCoordinate += PanoramaView_DidMoveToPanoramaNearCoordinate;
}
}
public void SetCoordinate(double latitude, double longitude)
{
Device.BeginInvokeOnMainThread(() =>
{
CLLocationCoordinate2D location = new CLLocationCoordinate2D(latitude, longitude);
panoramaView.MoveNearCoordinate(location);
});
}
void PanoramaView_DidMoveToPanoramaNearCoordinate(object sender, GMSPanoramaDidMoveToPanoramaNearCoordinateEventArgs e)
{
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
Control.Dispose();
}
base.Dispose(disposing);
}
}
그러나 하나를 사용하여 iOS에서 작동 { }
나는이 코드를 사용 코드는 ViewRenderer가있는 Android에서 작동합니다. 도와주세요. Android에서 StreetViewPanoramaView를 수행하려면 어떻게해야합니까?