开发 WinPhone SDK 开发指南 可视区域操作

可视区域操作 最后更新时间: 2021年01月22日

可视区域的位置

地图可视区域的位置由中心点(经纬度坐标)、缩放级别、旋转角度和倾斜角度四个属性来定义,对应高德地图 Windows Phone SDK 类为 CameraPosition,通过构建该对象定义地图的可视区域。

(1)中心点(target):地图的中心位置(经度和纬度);

(2)缩放级别(zoom):地图缩放级别范围为【4-20级】,值越大地图越详细,反之;

(3)旋转角度(bearing):角度范围为:【0.f-360.f】,正北方向为0度,逆时针旋转值会增加;

(4)倾斜角度 (tile):角度的范围为【0.f-45.f】,0度时建筑物没有远近关系,随着角度增加,建筑物的远近效果比较明显,产生立体效果。

移动可视区域

可以设置地图的可视区域,使用 CameraUpdateFactory 类构造 CameraUpdate 对象。然后根据得到的 CameraUpdate 对象,调用 AMap.moveCamera(CameraUpdate) 移动可视区域。示例代码(详见demo中CameralIntroduce.xaml.cs)如下:

private void amap_Loaded(object sender, RoutedEventArgs e)  
{  
  amap.MoveCamera(CameraUpdateFactory.NewLatLngZoom(new LatLng(39.90923, 116.397428), 13));  
}  

您也可以实现以动画渐进的效果来展示可视区域的移动过程, 具体实现过程为: 使用 CameraUpdateFactory 类构造 CameraUpdate 对象。然后根据得到的 CameraUpdate 对象,调用AMap.AnimateCamera (CameraUpdate,double) 方法来移动可视区域。在动画效果的播放过程中,您也可以使用 AMap.StopAnimation() 方法来停止可视区域的移动。示例代码(详见demo中Animate.xaml.cs)如下:

private void Button_Click(object sender, RoutedEventArgs e)  
{  
    amap.AnimateCamera(CameraUpdateFactory.NewLatLngZoom(new Latlng(30.679879, 104.064855),17),1);  
}  
private void Button_Click_1(object sender, RoutedEventArgs e)  
{  
    amap.StopAnimation();  
}  

CameraUpdateFactory 除了提供 NewLatLngZoom 方法外,还提供了 ZoomIn、ZoomOut、NewCameraPosition、ZoomTo 等方法,详见参考手册。

监听地图可视区域变化

当地图可视区域变化(地图移动、旋转等)时,您可以监听地图的变化,获取地图当前可视区域中心点坐标、倾斜角度、旋转角度和当前的缩放级别。当可视区域改变时回调的接口为 CameraChangeListener,示例代码(详见demo中CameralIntroduce.xaml.cs)如下:

amap.CameraChangeListener += amap_CameraChangeListener;   
private void amap_CameraChangeListener(object sender, AMapEventArgs e)  
{  
  cameraloutput1.Text = "target:" + e.CameraPosition.target.ToString();  
  cameraloutput2.Text = "tilt:" + e.CameraPosition.tilt.ToString();  
  cameraloutput3.Text = "bearing:" + e.CameraPosition.bearing.ToString();  
  cameraloutput4.Text = "zoom:" + e.CameraPosition.zoom.ToString();  
} 
 

显示如下图所示:

返回顶部 示例中心 常见问题 智能客服 公众号
二维码