高德地图API使用说明Word文档下载推荐.docx
- 文档编号:21456011
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:13
- 大小:552.43KB
高德地图API使用说明Word文档下载推荐.docx
《高德地图API使用说明Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《高德地图API使用说明Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
在模拟器环境中,您可以通过申请调试API秘钥,进行程序开发。
但在发布时,您必须申请签名证书的API秘钥,并替换MapView中的调试API秘钥。
AutoNaviMAPAPI的详细内容可参考
AutoNaviAndroidMAPAPI与GoogleAndroidMapAPI比较
首先,AutoNaviAndroidMAPAPI与GoogleAndroidMapAPI是基本兼容的,只需替换Java包名和MapAPIKey,即可将GoogleAndroidMapAPI替换为AutoNaviAndroidMAPAPI。
在此基础之上,AutoNaviAndroidMAPAPI同时还提供了一些个性化的功能和服务,见下文介绍:
1.坐标偏转:
根据中国相关法律规律,GPS坐标首先需要经过偏转,否则此位置点将不能与电子地图匹配。
AntoNaviAndroidMAPAPI支持了坐标偏转功能,并且在类MyLocation中内置了此功能,因此位置点显示相比较为准确。
2.本地缓存:
位置相关应用的特点是用户的地图访问有一定的局部性。
因此,AutoNaviAndroidMAPAPI增加了本地缓存功能,此功能有助于提高速度,且减少最终用户资费。
3.CellID定位(手机基站定位):
根据手机的当前连接基站,确定位置。
此功能使用AndroidLocationManager机制,可以与现有的定位机制无缝集成。
当GPS无信号时,可实现使用CellID定位。
4.Geocodeing&
ReverseGeocoding(地理编码与逆地理编码):
在国外,位置信息地址描述相对比较精确,例如:
XX市XX街道XX号。
但在中国,由于一些生活习惯的特点和差异,用户一般不会准确描述位置信息地址,而是选择通过以下描述来定位位置:
XX路口。
具体场景如:
“我在XX路口等你“或”我们在XX大厦旁边见面“。
根据此特点,我们进行了本地化设计,因此高德地理编码与逆地理编码API满足了此类需求。
5.Poi搜索:
通过高德Poi搜索API,简单的几条语句,即可进行POI搜索,并且将结果标注在地图上。
这大大简化了程序开发人员的工作。
另一方面,高德的地理搜索引擎支持语义级别的POI搜索。
具体场景:
假设有一个应用想在当前地图上标注所有饭馆,如果使用通用的搜索,如何设置搜索关键字呢?
“饭馆”,“饭馆+餐厅”,“吃饭”?
似乎没有非常合理的方案。
而高德的地理搜索引擎除传统的全文搜索外,同时提供类别搜索。
开发人员可自行组合高德POI类别,实现在AutoNaviMAPAPI的基础上创造出自有应用程序更强大的应用。
在AutoNavi中未支持的GoogleMapAPI
类名
方法
注释
MapView
voidcomputeScroll()
不支持
booleanisSatellite()
不支持卫星图
booleanisStreetView()
不支持街景图
booleanisTraffic()
不支持交通图
android.view.ViewgetZoomControls()
Deprecated;
Google已声明不支持使用该方法
voidpreLoad()
调用无效
voidsetSatellite(booleanon)
voidsetStreetView(booleanon)
voidsetTraffic(booleanon)
MapView.LayoutParams
java.lang.Stringdebug(java.lang.Stringoutput)
MapActivity
protected
booleanisLocationDisplayed()
Google内部统计函数,不支持
protectedabstract
booleanisRouteDisplayed()
Overlay.Snappable
booleanonSnapToItem(intx,inty,android.graphics.PointsnapPoint,MapViewmapView)
ItemizedOverlay
MyLocationOverlay
TrackballGestureDetector
手势探测,此类中全部函数不支持
如何使用AutoNaviMAPAPI
在这一节里我们会通过例子来展示如何创建一个使用AutoNaviAPI的应用并加以详细说明。
AutoNaviMAPAPI允许用户在自己的应用中加入地图功能,给地图添加各种标注、折线等,同时可以进行地图相关操作、显示信息提示窗口等功能。
通过本教程使用户可以创建一个MapActivity的子类,将MapView显示于其上,并可以用MapController来控制显示的坐标、视野高度。
处理起来非常简单。
注意事项
下面介绍在程序开发中要注意的一些问题:
首先是必须要申请一个MapApiKey,具体方法可参考这里
其次,是一定要在manifest.xml中设置相应的权限,比如:
viewsourceprint?
1.<
uses-permissionandroid:
name="
android.permission.INTERNET"
/>
2.<
android.permission.ACCESS_NETWORK_STATE"
3.<
android.permission.WRITE_EXTERNAL_STORAGE"
如何创建MapView
MapActivity是一个抽象类,任何想要显示MapView的activity都需要派生自MapActivity。
并且在其派生类的onCreate()中,都要创建一个MapView实例。
可以通过MapViewconstructor(thenaddittoalayoutViewwithViewGroup.addView(View))或者通过layoutXML来创建。
MapViewDemo.java
01.importandroid.os.Bundle;
02.importcom.autonavi.mapapi.GeoPoint;
03.importcom.autonavi.mapapi.MapActivity;
04.importcom.autonavi.mapapi.MapController;
05.importcom.autonavi.mapapi.MapView;
06.
07.publicclassMapViewDemoextendsMapActivity{
08.
MapViewmMapView;
09.
MapControllermMapController;
10.
GeoPointpoint;
11.
@Override
12.
/**
13.
*显示地图,启用内置缩放控件,并用MapController控制地图的中心点及Zoom级别
14.
*/
15.
protectedvoidonCreate(BundlesavedInstanceState){
16.
//TODOAuto-generatedmethodstub
17.
super.onCreate(savedInstanceState);
18.
setContentView(R.layout.mapviewdemo);
19.
mMapView=(MapView)findViewById(R.id.atmapsView);
20.
mMapView.setBuiltInZoomControls(true);
//设置启用内置的缩放控件
21.
mMapController=mMapView.getController();
//得到mMapView的控制权,可以用它控制和驱动平移和缩放
22.
point=newGeoPoint((int)(39.90923*1E6),
23.
(int)(116.397428*1E6));
//用给定的经纬度构造一个GeoPoint,单位是微度(度*1E6)
24.
mMapController.setCenter(point);
//设置地图中心点
25.
mMapController.setZoom(12);
//设置地图zoom级别
26.
}
27.}
Mapviewdemo.xml
01.<
?
xmlversion="
1.0"
encoding="
utf-8"
>
02.
03.<
LinearLayoutxmlns:
android="
04.
xmlns:
autonavi="
05.
orientation="
vertical"
layout_width="
fill_parent"
layout_height="
07.
<
com.autonavi.mapapi.MapViewandroid:
id="
@+id/atmapsView"
clickable="
true"
apiKey="
"
autonavi:
userAgent="
androidh"
/>
12.<
/LinearLayout>
13.<
!
--这里需要将apikey中的?
改成你自己申请到的apikey.-->
图1:
MapView显示地图
如何创建ItemizedOverlay
ItemizedOverlay是Overlay的一个基类,它包含了一个OverlayItems列表。
使用此类可以在地图上添加多个标记点,并且维护一个焦点选中的item,同时也负责把一个屏幕点击匹配到item上去,分发焦点改变事件给备选的监听器。
1.Drawablemarker=getResources().getDrawable(R.drawable.poi_1);
//得到需要标在地图上的资源
2.marker.setBounds(0,0,marker.getIntrinsicWidth(),
3.
marker.getIntrinsicHeight());
//为maker定义位置和边界
4.mMapView.getOverlays().add(newOverItemT(marker,this));
//添加ItemizedOverlay实例到mMapView
1.GeoList.add(newOverlayItem(p1,"
P1"
"
point1"
));
2.GeoList.add(newOverlayItem(p2,"
P2"
point2"
3.GeoList.add(newOverlayItem(p3,"
P3"
point3"
4.populate();
//createItem(int)方法构造item。
一旦有了数据,在调用其它方法前,首先调用这个方法
1.Projectionprojection=mapView.getProjection();
2.for(intindex=size()-1;
index>
=0;
index--){//遍历GeoList
OverlayItemoverLayItem=getItem(index);
//得到给定索引的item
4.
Stringtitle=overLayItem.getTitle();
5.
//把经纬度变换到相对于MapView左上角的屏幕像素坐标
6.
Pointpoint=projection.toPixels(overLayItem.getPoint(),null);
com.autonavi.mapapi.MapView
2.
@+id/itemizedoverlayview"
?
//?
处加入自己申请的Key
7.
android"
8./>
图2:
显示标记点
如何创建PoiSearch
01.try{
02.PoiSearchpoiSearch=newPoiSearch(POISearchDemo.this,
03.
newPoiSearch.Query("
苏州街"
null));
//设置搜索字符串
04.PoiPagedResultresult=poiSearch.searchPOI();
//调用搜索POI方法
if(result.getPage
(1).isEmpty()){
Toast.makeText(getApplicationContext(),"
没有找到!
Toast.LENGTH_SHORT).show();
}else{
PoiOverlaypoiOverlay=newPoiOverlay(null,
result.getPage
(1));
//将结果的第一页添加到PoiOverlay
mMapView.getOverlays().add(poiOverlay);
//将poiOverlay标注在地图上
13.}catch(IOExceptione){
网络连接错误!
16.}
@+id/poisearchview"
处加入自己申请的Key
5./>
图3:
地址搜索结果
如何创建Geocoder
01.GeocodermGeocoder01=newGeocoder(GeocodingDemo.this);
02.intx=geo.getLatitudeE6();
//得到geo纬度,单位微度(度*1E6)
03.doublex1=((double)x)/1000000;
04.inty=geo.getLongitudeE6();
//得到geo经度,单位微度(度*1E6)
05.doubley1=((double)y)/1000000;
06.try{
//将GPS数据偏转得到你逆理编码,参数分别为:
纬度,经度,最大结果集
List<
Address>
lstAddress=mGeocoder01.getFromRawGpsLocation(x1,y1,3);
if(!
lstAddress.isEmpty()){
//Toast输出geo编码得到的地名
for(inti=0;
i<
lstAddress.size();
++i){
AddressadsLocation=lstAddress.get(i);
Toast.makeText(getApplicationContext(),
adsLocation.getFeatureName().toString(),
Toast.LENGTH_LONG).show();
Log.i(TAG,"
Addressfound="
+adsLocation.toString());
AddressGeoPointNOTFound."
);
21.}
22.catch(Exceptione){
连接错误!
Toast.LENGTH_SHORT).show();
24.}
@+id/geocodingview"
图4:
经纬度
如何创建MyLocation
绘制用户当前在地图上的位置(精准度),和/或一个嵌入的指南针。
子类能覆盖方法dispatchTap()去处理对当前位置的点击为了开启这个overlay的功能,需要去调用enableMyLocation()和/或enableCompass(),或调用Activity中的Activity.onResume()方法
关键代码
01.mylocTest=newMyLocationOverlay(getApplicat
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地图 API 使用说明
![提示](https://static.bdocx.com/images/bang_tan.gif)