构建Android平台Google Map应用
2010-10-13 17:30:35 来源:本站整理核心提示:Android本身设计和系统的实现是一个极其复杂的工作。Android 提供的地图(Map)功能可能是广大开发者非常关心的一个部分。到目前为止,开发内嵌式地图应用的软件是相当的困难,而且往往还需要支付很高的地图厂商的版权费。相信在明年全面发布,真机发布之时,Android会变得更加强壮和易用。
经度是地球上一个地点离一根被称为本初子午线的南北方向走线以东或以西的度数。本初子午线的经度是0°,地球上其它地点的经度是向东到180°或向西到180°纬度是指某点与地球球心的连线和地球赤道面所成的线面角,其数值在0至90度之间。位于赤道以北的点的纬度叫北纬,记为N,位于赤道以南的点的纬度称南纬,记为S。基于纬度 phi (φ) 和经度 lambda (λ)的地图模型
使用geocode,地球上任何一个地点都可以用精度+维度来代表。当然,geocode涉及的范围很广,本身就是一个很大的课题,以后有机会我们再讲。
回到Android,com.google.android.maps.Point 这个类代表了一个地点的经纬度:Point(int latitudeE6, int longitudeE6),E6 是微度(microdegrees),就是度数再乘以1000000。目前如果要指定地图地点,一定要传递一个Point的类到地图中:
// 纽约帝国大厦的经度和纬度
Point p = new Point(40.748356*1000000,-73.984621*1000000);
// 获取当前地图的控制器
MapController mc = mapview.getController();
// 地图中心移动到指定的点上
mc.animateTo(p);
// 放大到21级(level),level范围1-21
mc.zoomTo(21);
以拉斐特广场为例的地图效果
你也可以使用zoomTo(int)来缩放到你需要的级别,比如获取当前缩放等级并再缩放一级(zoom out 1 morelevel):mc.zoomTo(mapview.getZoomLevel()-1)
经过缩放以后的地图效果
[]
赞助商链接