高德android - api - 开发指南 - 图文 下载本文

??? e.printStackTrace();

??? Toast.makeText(getApplicationContext(), \连接错误!\, ??? Toast.LENGTH_SHORT).show(); ??? }

结果见图7-1 根据经纬度获取地址描述效果图

图7-1 根据经纬度获取地址描述效果图

AMapGeocoding 新增方法。根据我国政府规定,GPS 数据需要偏转,才能匹配到电子地图上。如果应用程序从GPS 上得到了经纬度,则需通过getFromRawGpsLocation(double latitude, double longitude, int maxResults) 方法,进行逆地理编码的转换。

搜索服务

高德地图Poi Search API 提供了对POI(Point Of Interesting,兴趣点)的搜索,它使用高德地图,总计包含千万级别的POI。

PoiSearch及PoiOverlay

POI 搜索有三种方式,:关键字搜索、周边搜索、类型搜索等。关键字搜索:如:搜索北京的“天安门”关键字

源码复制打印关于

??? PoiSearch

\)); // \为北京电话区号\

poiSearch= new

PoiSearch(PoiSearchDemo.this,newPoiSearch.Query(\天安门\,PoiTypeDef.All,

??? PoiPagedResultresult = poiSearch.searchPOI(); 周边搜索:AMap 周边2000 米的和“肯德基”相关的POI 点。

源码复制打印关于

??? GeoPointpoint = new GeoPoint((int) (39.982378 * 1E6), ??? (int) (116.304923 * 1E6));//AMap

??? PoiSearch poiSearch = new PoiSearch(PoiSearchDemo.this,

??? new PoiSearch.Query(\肯德基\,PoiTypeDef.All, \));//\为北京电话区号\ ??? PoiPagedResultresult = poiSearch.searchPOI(); 类型搜索:如:搜索在北京和“西单”有关的所有“银行”。

源码复制打印关于

??? // \为北京电话区号\”银行”为类型,更多类型请参考PoiTypeDef 类,如果您想使用 ??? PoiSearch

poiSearch

=

new

PoiSearch(PoiSearchDemo.this,newPoiSearch.Query(\西单\,\银行\, \)); 下面以周边、类型检索为例,介绍如何进行检索并显示覆盖物PoiOverlay:

源码复制打印关于

??? GeoPointpoint = new GeoPoint((int) (39.982378 * 1E6), ??? (int) (116.304923 * 1E6));//AMap

??? PoiSearch poiSearch = new PoiSearch(PoiSearchDemo.this,

??? new PoiSearch.Query(\,\银行\, \)); // \为城市区号\poiSearch.setBound(new SearchBound(point, 1000));

??? PoiPagedResultresult =poiSearch.searchPOI();//AMap 周边1000 米内的银行 结果见图8-1 搜索服务效果图:

图8-1 搜索服务效果图

路径规划

驾车路线规划及RouteOverlay

从“天安门”到“大恒科技大厦”的驾车路线:

源码复制打印关于

??? GeoPoint startPoint=new GeoPoint(39908717,116397516); ??? GeoPoint endPoint=new GeoPoint(39982374,116305141);

??? FromAndTo fromAndTo = new FromAndTo(startPoint, endPoint); ??? try {

??? Listroute = Route.calculateRoute(RouteDemo.this, fromAndTo, Route.DrivingDefault);

??? // 构造RouteOverlay 参数为MapActivity cnt, Route rt。这里只取了查到路径的第一条。

??? if (route.size() > 0) {

??? routeOverlay = new RouteOverlay(RouteDemo.this, route.get(0)); ??? routeOverlay.registerRouteMessage(RouteDemo.this);//注册人消息处理函数 ??? routeOverlay.addToMap(mv);//加入地图 ??? }

??? } catch (IOException e) { ??? e.printStackTrace(); ??? }

显示结果见图9-1 驾车路线规划效果图: