baidumapapi_v3_1_dom4j1.6.1.jar下载 怎么获取地图控制器哦

初探 Android 百度地图SDK版本v2.0.0
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
&&&&& 一、开发前的准备工作:
&&&&& 1、注册百度账号,并登录。(有百度账号的话直接登录)
&&&&& 2、申请Key,地址:
&&&&& 注:经研究发现在申请KEY时,应用名称一定要写成my_app_应用名(也就是说"my_app_"是必须要有的)这样,生成的API密钥后面才可用。其他格式的也可以生成API密钥,但是在使用过程中会出问题。(比如:一开始就报授权Key错误,或者使用一段时间后就不行了)
&&&&&&& 3、下载SDK(v2.0.0),地址:
&&&&&& 注:下载Android SDKv2.0.0 (矢量地图版),里面有BaiduMap_AndroidSDK_v2.0.0_Lib.zip、BaiduMap_AndroidSDK_v2.0.0_Docs.zip和BaiduMap_AndroidSDK_v2.0.0_Sample.zip三个压缩包。
&&&&&&&&二、搭建开发环境,开始The world, hello(世界,你好)之旅:
&&&&&&&& 1、创建android项目,在选SDK时(Choose an SDK to target),选的不是Google APIs,是不带地图服务的SDK 。
&&&&&&&&& 2、在项目创建完毕,在工程里新建libs文件夹,将开发包(BaiduMap_AndroidSDK_v2.0.0_Lib.zip)里的baidumapapi_v2_0_0.jar拷贝到libs根目录下,将libBMapApiEngine_v2_0_0.so和libvi_voslib.so 拷贝到libs\armeabi目录下,拷贝完成后的工程目录如下图所示:
&&&&&&&&&& 3、在AndroidManifest.xml文件中添加使用权限:
&!-- 使用网络功能所需权限 --&
&uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" &
&/uses-permission&
&uses-permission android:name="android.permission.INTERNET" &
&/uses-permission&
&uses-permission android:name="android.permission.ACCESS_WIFI_STATE" &
&/uses-permission&
&uses-permission android:name="android.permission.CHANGE_WIFI_STATE" &
&/uses-permission&
&!-- 读取手机的当前状态权限,没有的话会报错,这个是使用百度地图API必须的 --&
&uses-permission android:name="android.permission.READ_PHONE_STATE" &
&/uses-permission&
&!--Cache功能需要读写外部存储器 ,若没这个权限,地图加载不出来--&
&uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" &
&/uses-permission&
&&&&&&&&&& 4、添加对多种屏幕的支持:
添加屏幕支持
android:anyDensity="true"
这个属性指明应用程序是否包含了能够适用于任何屏幕密度的资源。
对于支持Android1.6(API Level 4)和更高版本的应用程序,这个属性的默认值是true,
并且除非绝对的确认这是应用程序正常工作所必须的,否则不应该把它设置为false。
只是在应用程序直接操作位图时才需要禁止这个属性。
android:largeScreens="true"
这个属性用于指示应用程序是否支持较大外形的屏幕。
一个large类型的屏幕被定义成一个比normal类型的手持设备的屏幕明显还要大的屏幕,
并且为了让应用程序能够良好的使用,使用这个属性时要特别小心,尽管可以依赖系统来调整尺寸,
以便能够填充屏幕。
这个属性的默认值实际上在某些版本之间是不同的,因此最好在任何时候都明确的声明这个属性。
如果设置为false,系统会启用屏幕兼容模式,这时要格外的小心。
android:normalScreens="true"
这个属性用于指示应用程序是否支持普通外形的屏幕。
典型的是HVGA中等密度的屏幕,但是WQVGA低密度和WVGA高密度屏幕也被认为是普通屏幕。
这个属性的默认值是true。
android:smallScreens="true"
这个属性用于指定应用程序是否支持较小外形的屏幕。
一个small类型的屏幕被定义成一个比normal(传统的HVGA)类型的屏幕还要小的屏幕。
外部服务(如Google Play)不会把不支持小屏的应用程序提供给小屏设备,
因为很少有能够确保该应用程序在小屏幕的设备上正常工作的平台。这个属性的默认值是true。
android:resizeable="true"
这个属性用于指示针对不同的屏幕尺寸,应用程序是否可以调整尺寸。默认值是true。
&supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" /&
&&&&&&&&&&5、配置Activity:
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:name=".BaiduMapBaseActivity"
android:screenOrientation="sensor" &
&intent-filter &
&action android:name="android.intent.action.MAIN" /&
&category android:name="android.intent.category.LAUNCHER" /&
&/intent-filter&
&/activity& &&&&&&&&& 6、在布局xml文件中添加地图控件:
&com.baidu.mapapi.map.MapView
android:id="@+id/bmapsView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" /&
&&&&&&& 7、&创建地图Activity,并import相关类:
&&&&&&&&&&&&&& a. 创建地图引擎管理类对象,并初始化。
// 注意:请在调用setContentView前初始化BMapManager对象,否则会报错
mBMapManager = new BMapManager(this.getApplicationContext());
mBMapManager.init(BAIDU_MAP_KEY, new MKGeneralListener() {
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
Toast.makeText(BaiduMapBaseActivity.this.getApplicationContext(),
"您的网络出错啦!", Toast.LENGTH_LONG).show();
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
// 授权Key错误:
Toast.makeText(BaiduMapBaseActivity.this.getApplicationContext(),
"请在 DemoApplication.java文件输入正确的授权Key!", Toast.LENGTH_LONG).show();
&&&&&&&&&&& &&b.通过ID获取代表地图显示组件的MapView对象,并设置启用内置的缩放控件。
mMapView = (MapView) this.findViewById(R.id.bmapsView);
// 设置启用内置的缩放控件
mMapView.setBuiltInZoomControls(true); &&&&&&&&&&&&&&&& &c.获取地图控制器对象,并设置地图的中心点及缩放级别。
// 获取地图控制器,可以用它控制平移和缩放
MapController mMapController = mMapView.getController();
// 用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
// 北京天安门的经纬度:39.915 * 1E6,116.404 * 1E6
// GeoPoint mGeoPoint = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6));
// 上海市浦东新区的GPS纬度经度值:31..540419
GeoPoint mGeoPoint = new GeoPoint(
(int) (31.224078 * 1E6),
(int) (121.540419 * 1E6));
// 设置地图的中心点
mMapController.setCenter(mGeoPoint);
// 设置地图的缩放级别。 这个值的取值范围是[3,18]。
mMapController.setZoom(13); &&&&&&&&&&&&&&d.重写Activity的生命周期回调方法onResume()、onPause()和onDestroy(),管理地图引擎管理类对象和显示对象生命周期。
protected void onResume() {
mMapView.onResume();
if (mBMapManager != null) {
mBMapManager.start();
super.onResume();
protected void onPause() {
mMapView.onPause();
if (mBMapManager != null) {
mBMapManager.stop();
super.onPause();
protected void onDestroy() {
mMapView.destroy();
if (mBMapManager != null) {
mBMapManager.destroy();
mBMapManager =
super.onDestroy();
} 经过以上这些步骤,加载的是上海市浦东新区地图(基础图),运行工程效果图如下:
注:基本的地图图层,包括若干个缩放级别,显示基本的地图信息,包括道路、街道、学校、公园等内容。
&&&&&&&&&&&&e.在地图中显示实时交通信息示图(当前,全国范围内已支持多个城市实时路况查询,且会陆续开通其他城市。)
// 在地图中显示实时交通信息示
mMapView.setTraffic(true); &&&&&&& &运行效果图如下:
&&&&&&&&& &f.显示卫星图(卫星地图是卫星拍摄的真实的地理面貌,所以卫星地图可用来检测地面的信息,你可以了解到地理位置,地形等。)
// 显示卫星图
mMapView.setSatellite(true); 运行效果图如下:
完整代码如下:
package com.android.baidu.
import android.app.A
import android.os.B
import android.widget.T
import com.baidu.mapapi.BMapM
import com.baidu.mapapi.MKGeneralL
import com.baidu.mapapi.map.MKE
import com.baidu.mapapi.map.MapC
import com.baidu.mapapi.map.MapV
import com.api.basestruct.GeoP
* 基本的地图图层,包括若干个缩放级别,显示基本的地图信息,包括道路、街道、学校、公园等内容。
* @author android_ls
public class BaiduMapBaseActivity extends Activity {
/**地图引擎管理类*/
private BMapManager mBMapManager =
/**显示地图的View*/
private MapView mMapView =
* 经研究发现在申请KEY时:应用名称一定要写成my_app_应用名(也就是说"my_app_"是必须要有的)。
* 百度地图SDK提供的服务是免费的,接口无使用次数限制。您需先申请密钥(key),才可使用该套SDK。
public static final String BAIDU_MAP_KEY = "07418AEC69BAAB20C580DFFAEEBB";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 注意:请在调用setContentView前初始化BMapManager对象,否则会报错
mBMapManager = new BMapManager(this.getApplicationContext());
mBMapManager.init(BAIDU_MAP_KEY, new MKGeneralListener() {
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
Toast.makeText(BaiduMapBaseActivity.this.getApplicationContext(),
"您的网络出错啦!",
Toast.LENGTH_LONG).show();
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
// 授权Key错误:
Toast.makeText(BaiduMapBaseActivity.this.getApplicationContext(),
"请在 DemoApplication.java文件输入正确的授权Key!",
Toast.LENGTH_LONG).show();
setContentView(R.layout.main);
mMapView = (MapView) this.findViewById(R.id.bmapsView);
// 设置启用内置的缩放控件
mMapView.setBuiltInZoomControls(true);
// 获取地图控制器,可以用它控制平移和缩放
MapController mMapController = mMapView.getController();
// 用给定的经纬度构造一个GeoPoint,单位是微度 (度 * 1E6)
// 北京天安门的经纬度:39.915 * 1E6,116.404 * 1E6
/* GeoPoint mGeoPoint = new GeoPoint(
(int) (39.915 * 1E6),
(int) (116.404 * 1E6));*/
// 上海市浦东新区的GPS纬度经度值:31..540419
GeoPoint mGeoPoint = new GeoPoint(
(int) (31.224078 * 1E6),
(int) (121.540419 * 1E6));
// 设置地图的中心点
mMapController.setCenter(mGeoPoint);
// 设置地图的缩放级别。 这个值的取值范围是[3,18]。
mMapController.setZoom(13);
// 当前,全国范围内已支持多个城市实时路况查询,且会陆续开通其他城市。
// 在地图中显示实时交通信息示
// mMapView.setTraffic(true);
// 卫星地图是卫星拍摄的真实的地理面貌,所以卫星地图可用来检测地面的信息,你可以了解到地理位置,地形等。
// 显示卫星图,屏掉 mMapView.setTraffic(true);这行代码。
mMapView.setSatellite(true);
// 重写以下方法,管理API
protected void onResume() {
mMapView.onResume();
if (mBMapManager != null) {
mBMapManager.start();
super.onResume();
protected void onPause() {
mMapView.onPause();
if (mBMapManager != null) {
mBMapManager.stop();
super.onPause();
protected void onDestroy() {
mMapView.destroy();
if (mBMapManager != null) {
mBMapManager.destroy();
mBMapManager =
super.onDestroy();
}来自:http://blog.csdn.net/android_ls/article/details/8577725
相关资讯  — 
相关文档  — 
发布时间: 17:35:46
同类热门经验
37787次浏览
104488次浏览
25514次浏览
67691次浏览
35327次浏览
OPEN-OPEN, all rights reserved.iOS 问题:百度地图- (void)didUpdateUserLocation:(BMKUserLocation *)userLocation 获取坐标和我本人当前位置差太多 反地理编码得到城市也不对,如何解决?是否真机测试的时候会显示正确城市?另外不需要地图的显示的 -
百度地图- (void)didUpdateUserLocation:(BMKUserLocation *)userLocation 获取坐标和我本人当前位置差太多 反地理编码得到城市也不对,如何解决?是否真机测试的时候会显示正确城市?另外不需要地图的显示的
共有 2 个回答
网上说是二次加密的问题,可是怎么办呢
登录后方可回复
出于种种原因,中国地图坐标系统与国际标准不一样。你得到的坐标是加了偏移量的所谓“火星坐标”,一般有几百米的误差。百度搜下“火星坐标”。
登录后方可回复
登录后方可回答
耗时 0.1147 秒的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.002 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.002 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.002 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.002 收益5752人阅读
&Google Maps 开发指南
Google Maps 是 google 公司推出的一款网上地图工具,通过AJAX技术实现无刷新、可拖动、高性能的网页程序。
1. 关键字&
Google Maps 的网站:&(英文)暂时还没有中文的,地图方面卫星图象精度在北美(美国和加拿大)方面比较高.
Google Maps API:&(英文,在这里可以申请到 API KEY)GMap API Key是每个GMap 程序都要有的, 他与网站域名关联, 申请时输入网站域名(多域名的网站处理起来可要麻烦点了).假如你的GMaps没有API KEY 者显示一个提示框.PS: 请注意他的协议. 这里我就不重复了.
Google Maps API Document(V2):这个是Google公司公布的开发文档. 开发前需要阅读.PS: (自己翻译的中文版)
API中的坐标:在GMaps 中一个位置使用2个浮点数确定,他们代表经度和纬度(度数经过转换成数字), 另外还有个深度值来表示坐标所在地图中的所放级数(范围大致为1~19, 只有个别城市能达到最大深度).
2. 申请 GMap API Key
访问& &阅读协议,填写你的网站地址就可以申请到API KEY了, PS: 申请需要一个小前提, 你需要有Google帐户. 不用担心, 他没有申请个数的限制(起码现在没有).
3. 创建第一个GMaps
下面我们创建一个GMaps,包含一个地图控制器和地图模式控制器。
&!DOCTYPE&html&PUBLIC&&-//W3C//DTD&XHTML&1.0&Strict//EN&&&&&&&http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&&html&xmlns=&http://www.w3.org/1999/xhtml&&&head&&meta&http-equiv=&content-type&&content=&text/&charset=utf-8&/&&title&Google&Maps&JavaScript&API&Example&/title&&!--下面的&Script&加载了GMap&API此出必须在所有的应用前加载,否则可能会出现隐含错误使用你自己的API&Key替换掉&key=abcdefg&中的&abcdefgPS:GMaps&兼容大部分浏览器&可以在使用&GMaps&前,&先用&GBrowserIsCompatible()&函数检查是否支持。&--&&script&src=&/maps?file=api&v=2&key=abcdefg&&&&&type=&text/javascript&&&/script&&script&type=&text/javascript&&...//&CDATA&标签说明:CDATA&是XML格式中表示文本段的,当你的网页使用&XHTML&编写时候,就需要加&CDATA&标签.//&因为注释标签&&&&!&--&&&只能注销掉部分内容,&容易导致&XML&解析器分析失败.//&![CDATA[//&函数:显示一个&GMAP&实例function&load()&...{&&&&//检查浏览器是否支持&&&&if&(GBrowserIsCompatible())&...{&&&&&&&&//声明&GMap&实例,&显示在页面中&Id&为&map&&的&DIV&元素中.&&&&&&&&var&map&=&new&GMap2(document.getElementById(&map&));&&&&&&&&//添加地图控制器,&下面4个类型的地图控制器是同一类型的.&4&种类型,可选一个&&&&&&&&//缩小模式&&&&&&&&&//map.addControl(new&GSmallMapControl());&&&&&&&&//最大模式&&&&&&&&map.addControl(new&GLargeMapControl());&&&&&&&&//只有放大和缩小的模式&&&&&&&&//map.addControl(new&GSmallZoomControl());&&&&&&&&//只有地图缩放控制条的模式&&&&&&&&//map.addControl(new&GScaleControl());&&&&&&&&//填加地图类型控制器&允许在地图视图、卫星视图和地图卫星混合模式,&三个模式中切换&&&&&&&&map.addControl(new&GMapTypeControl());&&&&&&&&//可以通过GMap2.setMapType()方法修改地图的显示模式&&&&&&&&//内建&3&种模式,&分别是&G_NORMAL_MAP:地图模式,G_SATELLITE_MAP:卫星模式,G_HYBRID_MAP:混合模式:&&&&&&&&map.setMapType(G_NORMAL_MAP);&&&&&&&&//地图加载后必须设置中心点,&否则将出现错误警告.&&&&&&&&//GLatLng(Lat,Lng)&是一个坐标,&Lat:纬度,Lng:经度,&假如你使用变量请使用&Number&对象&&&&&&&&//这是个变量精度问题在16级深度下将可能产生超过18位小数的数字.&&&&&&&&map.setCenter(new GLatLng(40..005494), 15);&&&&}}//]]&&/script&&/head&&!--在页面加载完毕后,&显示&GMAP&实例--&&body&onload=&load()&&onunload=&GUnload()&&&!--GMaps&显示容器,需要在创建&GMaps&对象前创建GMaps&的大小通过容器的属性获取,&修改容器的大小后需要调用&GMap2.checkResize()&使&GMaps&适应容器的大小--&&div&id=&map&&style=&width:&500&height:&300px&&&&/div&&/body&&/html&
&4. 记录地图坐标
首先我们前面提过,GMaps 的坐标使用的是数字不是度,所以我们获取的一般也都用数字表示,当然如果你要使用度数的话,你需要自己写个转换函数来获取度数。
我们这里直接在地图上获取他的GLatLng()对象通过click 事件获取事件发生时改点的坐标, 我们直接使用这个.
&!DOCTYPE&html&PUBLIC&&-//W3C//DTD&XHTML&1.0&Strict//EN&&&&&&&http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&&html&xmlns=&http://www.w3.org/1999/xhtml&&&head&&meta&http-equiv=&content-type&&content=&text/&charset=utf-8&/&&title&Google&Maps&JavaScript&API&Example&-&Get&click&point&/title&&script&src=&/maps?file=api&v=2&key=abcdefg&&&&&type=&text/javascript&&&/script&&script&type=&text/javascript&&...function&load()&...{&&&&//检查浏览器是否支持&&&&if&(GBrowserIsCompatible())&...{&&&&&&&&//声明&GMap&实例,&显示在页面中&Id&为&map&&的&DIV&元素中.&&&&&&&&var&map&=&new&GMap2(document.getElementById(&map&));&&&&&&&&map.addControl(new&GSmallMapControl());&&&&&&&&map.addControl(new&GMapTypeControl());&&&&&&&&//注册&click&事件&&&&&&&&GEvent.addListener(map,&&click&,&function(marker,&point)&...{&&&&&&&&&&&&//事件触发时将有&2&个参数传入&&&&&&&&&&&&//marker:地图上的标记点,假如不是点在标记点上,则此值为null&&&&&&&&&&&&//point:GlatLng对象,记录事件发生点的坐标,深度只能通过map.getZoom()获取&&&&&&&&&&&&if&(marker)&...{&&&&&&&&&&&&&&&&//如果是标记点,输出标记点的坐标&&&&&&&&&&&&&&&&alert(marker.getPoint());&&&&&&&&&&&&}&else&...{&&&&&&&&&&&&&&&&//假如不是标记点,在当前位置创建一个标记点&&&&&&&&&&&&&&&&map.addOverlay(new&GMarker(point));&&&&&&&&&&&&}&&&&&&&&});&&&&&&&&map.setCenter(new&GLatLng(40.714395,-74.005494),&15);&&&&&&&&GDownloadUrl(&Untitled-1.html&,function(text,status)...{&&&&&&&&&&&&alert(text);&&&&&&&&});&&&&}}//]]&&/script&&/head&&body&onload=&load()&&onunload=&GUnload()&&&div&id=&map&&style=&width:&960&height:&560px&&&&/div&&/body&&/html&
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:51005次
排名:千里之外
原创:24篇
转载:17篇
(1)(1)(1)(1)(1)(2)(2)(1)(1)(6)(2)(3)(2)(1)(6)(4)(2)(5)

我要回帖

更多关于 dom4j1.6.1.jar下载 的文章

 

随机推荐