Xamarin表单 - 获取地图的3D效果

时间:2017-05-08 23:07:06

标签: xamarin.forms maps

我的问题非常简单,但我无法找到任何相关内容,也许我没有使用好的关键词......

我正在制作一款应用,我想知道是否可以制作一张地图,例如" Pokemon Go"或者" Waze"?此外,我想知道是否可以像Waze那样进行切换?当你取消缩放时,它会回到2D地图视图。

感谢您的任何帮助或信息!

1 个答案:

答案 0 :(得分:1)

您必须创建自定义地图渲染器才能实现此3D外观,因为Forms不会公开相机API。这通过将相机附加到地图视图来工作。以下示例应该可以完成这项工作。您必须使用确切的设置才能获得所需的外观。

在iOS上

您可以将相机附加到MKMapView,如下所示:

// Create the camera
MKMapCamera camera = new MKMapCamera();
camera.Pitch = 80;
camera.Altitude = 100;
camera.Heading = 90;

// Attach the camera
map.SetCamera(camera, false);

在Android上

将相机连接到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

了解更多信息visit the Android docs on camera position

在UWP上

您可以使用DesiredPitch属性来实现类似的外观。请参阅configuring a map上的文档。

对于开关,您可以订阅事件以在相机达到特定阈值时移除或添加相机的角度。