标签:
配置信息<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="8367898f3fff604f75d81701e24e85ca" />private void init() {
if (aMap == null) {
aMap = mapView.getMap();
}
}aMap.setTrafficEnabled(true);
private void setUpMap() {
MyLocationStyle locationStyle=new MyLocationStyle();
locationStyle.strokeColor(Color.BLACK);
locationStyle.strokeWidth(1.0f);
locationStyle.radiusFillColor(0x8333);
locationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker));
aMap.setMyLocationStyle(locationStyle);//设置定位点样式
aMap.setLocationSource(this);//设置监听
aMap.setMyLocationEnabled(true);//启动定位图层
}@Override
public void activate(OnLocationChangedListener arg0) {
mLocationChangedListener=arg0;
if (mLocationManager==null) {
mLocationManager=LocationManagerProxy.getInstance(this);
//调用控制 每2秒更新1次,其主要的实时更改在最后一个参数AMapLocationListener
mLocationManager.requestLocationUpdates(LocationProviderProxy.AMapNetwork, 2000, 10, this);
}
}
@Override
public void deactivate() {
mLocationChangedListener=null;
if (mLocationManager!=null) {
mLocationManager.removeUpdates(this);
mLocationManager.destroy();
mLocationManager=null;
}
}@Override
public void onLocationChanged(AMapLocation arg0) {
if (mLocationChangedListener!=null && arg0!=null) {
mLocationChangedListener.onLocationChanged(arg0);
}
}mSensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE); mSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
private void setUpMap() {
mGPSMarker=aMap.addMarker(new MarkerOptions()
.icon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker))
.anchor(0.5f, 0.5f));
aMap.setLocationSource(this);
aMap.setMyLocationEnabled(true);
}@Override
public void activate(OnLocationChangedListener arg0) {
//....
mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void deactivate() {
//.....
mSensorManager.unregisterListener(this, mSensor);
}@Override
public void onLocationChanged(AMapLocation arg0) {
if (mLocationChangedListener!=null && arg0!=null) {
mLocationChangedListener.onLocationChanged(arg0);
mGPSMarker.setPosition(new LatLng(arg0.getLatitude(),arg0.getLongitude()));
}
}@Override
public void onSensorChanged(SensorEvent event) {
if (System.currentTimeMillis() - lastTime < TIME_SENSOR) {
return;
}
switch (event.sensor.getType()) {
case Sensor.TYPE_ORIENTATION: {
float x = event.values[0];
x += getScreenRotationOnPhone(this);
x %= 360.0F;
if (x > 180.0F)
x -= 360.0F;
else if (x < -180.0F)
x += 360.0F;
if (Math.abs(mAngle -90+ x) < 3.0f) {
break;
}
mAngle = x;
if (mGPSMarker != null) {
mGPSMarker.setRotateAngle(-mAngle);
aMap.invalidate();
}
lastTime = System.currentTimeMillis();
}
}
}
/**
* 获取当前屏幕旋转角度
*
* @param activity
* @return 0表示是竖屏; 90表示是左横屏; 180表示是反向竖屏; 270表示是右横屏
*/
public static int getScreenRotationOnPhone(Context context) {
final Display display = ((WindowManager) context
.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
switch (display.getRotation()) {
case Surface.ROTATION_0:
return 0;
case Surface.ROTATION_90:
return 90;
case Surface.ROTATION_180:
return 180;
case Surface.ROTATION_270:
return -90;
}
return 0;
}LatLngBounds bounds=new LatLngBounds.Builder() .include(new LatLng(22.117719,112.323274)) .include(new LatLng(22.117719,114.323274)) .include(new LatLng(24.117719,112.323274)) .include(new LatLng(24.117719,114.323274)) .build(); aMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 10)); aMap.moveCamera(CameraUpdateFactory.zoomBy(8)); aMap.setOnMapLoadedListener(this);//设置地图显示监听器
ArrayList<BitmapDescriptor> icons=new ArrayList<BitmapDescriptor>();
icons.add(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
//...
aMap.addMarker(new MarkerOptions().icons(icons)//显示多图片
.period(2)//变化周期
.position(new LatLng(23.118674,113.321614))
.anchor(0.5f, 0.5f)//锚点位置
.title("fuliyinkai")//点击显示文字
).showInfoWindow();//默认显示
aMap.setInfoWindowAdapter(this);//点击标记 显示自定义浮动ViewaMap.addCircle( new CircleOptions().center(new LatLng(23.118674,113.321614)) .fillColor(0x88888888).strokeColor(Color.BLACK) .strokeWidth(5).radius(400));
Inputtips inputtips=new Inputtips(this,new InputtipsListener() {
@Override
public void onGetInputtips(List<Tip> tips, int arg1) {
tip.getName()//获取匹配的单个数据名字
}
});
try {
inputtips.requestInputtips(content,"");
} catch (AMapException e) {
e.printStackTrace();
}// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国)
query = new PoiSearch.Query(keyWord, "", editCity.getText().toString());
query.setPageSize(10);// 设置每页最多返回多少条poiitem
query.setPageNum(currentPage);// 设置查第一页
poiSearch = new PoiSearch(this, query);
poiSearch.setOnPoiSearchListener(this);//主要执行onPoiSearched()
poiSearch.searchPOIAsyn();
@Override
public void onPoiSearched(PoiResult result, int rCode) {
dissmissProgressDialog();// 隐藏对话框
if (rCode == 0) {
if (result != null && result.getQuery() != null) {// 搜索poi的结果
if (result.getQuery().equals(query)) {// 是否是同一条
poiResult = result;
// 取得搜索到的poiitems有多少页
List<PoiItem> poiItems = poiResult.getPois();// 取得第一页的poiitem数据,页数从数字0开始
List<SuggestionCity> suggestionCities = poiResult
.getSearchSuggestionCitys();// 当搜索不到poiitem数据时,会返回含有搜索关键字的城市信息
if (poiItems != null && poiItems.size() > 0) {
aMap.clear();// 清理之前的图标
PoiOverlay poiOverlay = new PoiOverlay(aMap, poiItems);
poiOverlay.removeFromMap();
poiOverlay.addToMap();
poiOverlay.zoomToSpan();
} else if (suggestionCities != null
&& suggestionCities.size() > 0) {
showSuggestCity(suggestionCities);
} else {
ToastUtil.show(PoiKeywordSearchActivity.this,
R.string.no_result);
}
}
} else {
ToastUtil.show(PoiKeywordSearchActivity.this,
R.string.no_result);
}
} else if (rCode == 27) {
ToastUtil.show(PoiKeywordSearchActivity.this,
R.string.error_network);
} else if (rCode == 32) {
ToastUtil.show(PoiKeywordSearchActivity.this, R.string.error_key);
} else {
ToastUtil.show(PoiKeywordSearchActivity.this,
getString(R.string.error_other) + rCode);
}
}
标签:
原文地址:http://blog.csdn.net/qq285016127/article/details/45369363