第一步 配置高德地图的所有要配置的东西 记住APPKEY 一定要看清楚 这是个坑
导入jar包
第二步xml 实现map控件
第三步代码(犹豫时间紧任务重直接写关键代码至于配置的信息去高德看)
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mMapView = (MapView) findViewById(R.id.aMap);
mMapView.onCreate(savedInstanceState);
//初始化地图控制器对象
if (aMap == null) {
aMap = mMapView.getMap();
}
// aMap.setMyLocationEnabled(true);
// aMap.moveCamera(CameraUpdateFactory.zoomTo(7)); //设置缩放级别为17
aMap.showIndoorMap(true); //显示室内地图
查看是否显示地图
第四步:
//lat lon 分别是经纬度
LatLng latLng = new LatLng(lat, lon);
marker = aMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), R.mipmap.icon_property_address))).position(latLng).title(name).snippet(address));
//参数依次是:视角调整区域的中心点坐标、希望调整到的缩放级别、俯仰角0°~45°(垂直与地图时为0)、偏航角 0~360° (正北方为0)
CameraUpdate mCameraUpdate = CameraUpdateFactory.newCameraPosition(new CameraPosition(new LatLng(lat, lon), 18, 30, 0));
aMap.moveCamera(mCameraUpdate);
到这里就显示绘制点了
接下来是实现搜索
seach是高德里面的 POI 下面会发
PoiSearch.Query query = new PoiSearch.Query("",seach,"");
//keyWord表示搜索字符串,
//第二个参数表示POI搜索类型,二者选填其一,选用POI搜索类型时建议填写类型代码,码表可以参考下方(而非文字)
//cityCode表示POI搜索区域,可以是城市编码也可以是城市名称,也可以传空字符串,空字符串代表全国在全国范围内进行搜索
query.setPageSize(15);// 设置每页最多返回多少条poiitem
query.setPageNum(1);//设置查询页码
PoiSearch poiSearch = new PoiSearch(this, query);
poiSearch.setBound(new PoiSearch.SearchBound(new LatLonPoint(marker.getPosition().latitude,
marker.getPosition().longitude), 1000));//设置周边搜索的中心点以及半径
poiSearch.setOnPoiSearchListener(this);
poiSearch.searchPOIAsyn();
到这里就实现了
下面是seach辅助类
package com.example.ypc.eagle.view.detalis.code;
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永无BUG 永不修改 //
public class POICode {
//银行
public static String BANK = "160100";
//地铁
public static String METRO = "150500";
//医院
public static String HOSPITAL = "090100";
//公交
public static String BUS = "150700";
//学校
public static String SCHOOL = "141200";
//购物
public static String SHOPPING = "060101";
//超市
public static String SUPERMARKET = "060400";
//休闲
public static String RELAXATION = "080000";
//健身
public static String FITNESS = "080100";
}
然后实现他
PoiSearch.OnPoiSearchListener接口 在里面你可以查看i
i是错误信息可以在高德地图查你为什么失败
并且可以改你搜索到图片
@Override
public void onPoiSearched(PoiResult poiResult, int i) {
if (i == 1000) {
aMap.clear();
ArrayList<PoiItem> pois = poiResult.getPois();
for (int j = 0; j < pois.size(); j++) {
LatLonPoint latLonPoint = pois.get(j).getLatLonPoint();
double longitude = latLonPoint.getLongitude();
double latitude = latLonPoint.getLatitude();
LatLng latLng = new LatLng(latitude, longitude);
final Marker marker = aMap.addMarker(new MarkerOptions().icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory
.decodeResource(getResources(), mIconSelectIds[item]))).position(latLng));
}
} else {
LogUtil.e("111111111", i + "");
}
}