我的问题非常简单,但我无法找到任何相关内容,也许我没有使用好的关键词......
我正在制作一款应用,我想知道是否可以制作一张地图,例如" Pokemon Go"或者" Waze"?此外,我想知道是否可以像Waze那样进行切换?当你取消缩放时,它会回到2D地图视图。
感谢您的任何帮助或信息!
答案 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上的文档。
对于开关,您可以订阅事件以在相机达到特定阈值时移除或添加相机的角度。