高德地图根据经纬度定位
2015-11-28 12:47
323 查看
package com.example.gaoegps;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.location.LocationManagerProxy;
import com.amap.api.location.LocationProviderProxy;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.amap.api.maps.UiSettings;
import com.amap.api.maps.LocationSource.OnLocationChangedListener;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import android.location.Location;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class LatlngActivity extends Activity implements LocationSource,AMapLocationListener {
private MapView mapView;
private AMap aMap;
private UiSettings mUiSettings;
private CameraUpdate mUpdata;
Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_latlng);
mapView = (MapView) findViewById(R.id.mapView1);
mapView.onCreate(savedInstanceState);// 必须要写
init();
}
/**
* 初始化AMap对象
*/
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
mUiSettings = aMap.getUiSettings();
mUiSettings.setZoomControlsEnabled(false);
mUiSettings.setCompassEnabled(true);
mUpdata = CameraUpdateFactory.newCameraPosition(
//15是缩放比例,0是倾斜度,30显示比例
new CameraPosition(new LatLng(40.043212,116.299728), 15, 0, 30));//这是地理位置,就是经纬度。
aMap.moveCamera(mUpdata);//定位的方法
drawMarkers();
}
}
public void drawMarkers() {
Marker marker = aMap.addMarker(new MarkerOptions()
.position(new LatLng(40.043212,116.299728))
.title("八维")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.draggable(true));
marker.showInfoWindow();// 设置默认显示一个infowinfow
}
/**
* 方法必须重写
*/
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
/**
* 方法必须重写
*/
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
/**
* 方法必须重写
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(AMapLocation amapLocation) {
// TODO Auto-generated method stub
}
@Override
public void activate(OnLocationChangedListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void deactivate() {
// TODO Auto-generated method stub
}
/*
* UIsettings
* 对于高德地图的logo,我们通过UIsettings.setLogoPosition(AMapOptions)来设置LOGO的位置:
对于其中的的AMapOptions,有几个常量来表示图标的位置,分别表示底线左边,中心和右边:
AMapOptions.LOGO_POSITION_BOTTOM_LEFT;
AMapOptions.LOGO_POSITION_BOTTOM_CENTER;
AMapOptions.LOGO_POSITION_BOTTOM_RIGHT;
》LocationButton(定位按钮)
通过UISettings.setMyLocationButtonEnabled(boolean)来设置是否显示定位按钮;
除此之外,还可以通过UISettings.setMyLocationEnabled(boolean)来设置是否能使用定位服务;
》ZoomControls(缩放按钮)
通过UISettings.setZoomControlsEnabled(boolean)来设置缩放按钮是否能显示
》Compass(指南针)
通过iUISettings.setCompassedEnabled(boolean enabled)来设置是否显示和使用指南针:
》ScaleControls(比例尺)
通过UISettings.setScaleControlEnabled(Boolean enabled)来设置是否显示启用比例尺功能:
》ZoomGestures(缩放手势)
通过UISettings.setZoomGesturesEnabled(boolean)设置缩放手势是否启用:
》TiltGestures(倾斜手势)
通过UISettings.setTiltGesturesEnabled(boolean)设置倾斜手势是否启用:
》RotateGestures旋转手势:
通过UISettings.setRotateGesturesEnabled(boolean)设置倾斜手势是否启用:
除此之外,Amap哈有几个常用的监听器:
AMap.setOnMapClickListener(OnMapCLickListener):点击事件
AMap.setOnMapLongClickListener(OnMaplongClickListener):长按事件
AMap.setOnCameraChangeListener(OnCameraChangeListener):视图变换事件
*/
}
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationListener;
import com.amap.api.location.LocationManagerProxy;
import com.amap.api.location.LocationProviderProxy;
import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.LocationSource;
import com.amap.api.maps.MapView;
import com.amap.api.maps.UiSettings;
import com.amap.api.maps.LocationSource.OnLocationChangedListener;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;
import com.amap.api.maps.model.Marker;
import com.amap.api.maps.model.MarkerOptions;
import android.location.Location;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class LatlngActivity extends Activity implements LocationSource,AMapLocationListener {
private MapView mapView;
private AMap aMap;
private UiSettings mUiSettings;
private CameraUpdate mUpdata;
Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_latlng);
mapView = (MapView) findViewById(R.id.mapView1);
mapView.onCreate(savedInstanceState);// 必须要写
init();
}
/**
* 初始化AMap对象
*/
private void init() {
if (aMap == null) {
aMap = mapView.getMap();
mUiSettings = aMap.getUiSettings();
mUiSettings.setZoomControlsEnabled(false);
mUiSettings.setCompassEnabled(true);
mUpdata = CameraUpdateFactory.newCameraPosition(
//15是缩放比例,0是倾斜度,30显示比例
new CameraPosition(new LatLng(40.043212,116.299728), 15, 0, 30));//这是地理位置,就是经纬度。
aMap.moveCamera(mUpdata);//定位的方法
drawMarkers();
}
}
public void drawMarkers() {
Marker marker = aMap.addMarker(new MarkerOptions()
.position(new LatLng(40.043212,116.299728))
.title("八维")
.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_AZURE))
.draggable(true));
marker.showInfoWindow();// 设置默认显示一个infowinfow
}
/**
* 方法必须重写
*/
@Override
protected void onResume() {
super.onResume();
mapView.onResume();
}
/**
* 方法必须重写
*/
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
/**
* 方法必须重写
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
/**
* 方法必须重写
*/
@Override
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onLocationChanged(AMapLocation amapLocation) {
// TODO Auto-generated method stub
}
@Override
public void activate(OnLocationChangedListener arg0) {
// TODO Auto-generated method stub
}
@Override
public void deactivate() {
// TODO Auto-generated method stub
}
/*
* UIsettings
* 对于高德地图的logo,我们通过UIsettings.setLogoPosition(AMapOptions)来设置LOGO的位置:
对于其中的的AMapOptions,有几个常量来表示图标的位置,分别表示底线左边,中心和右边:
AMapOptions.LOGO_POSITION_BOTTOM_LEFT;
AMapOptions.LOGO_POSITION_BOTTOM_CENTER;
AMapOptions.LOGO_POSITION_BOTTOM_RIGHT;
》LocationButton(定位按钮)
通过UISettings.setMyLocationButtonEnabled(boolean)来设置是否显示定位按钮;
除此之外,还可以通过UISettings.setMyLocationEnabled(boolean)来设置是否能使用定位服务;
》ZoomControls(缩放按钮)
通过UISettings.setZoomControlsEnabled(boolean)来设置缩放按钮是否能显示
》Compass(指南针)
通过iUISettings.setCompassedEnabled(boolean enabled)来设置是否显示和使用指南针:
》ScaleControls(比例尺)
通过UISettings.setScaleControlEnabled(Boolean enabled)来设置是否显示启用比例尺功能:
》ZoomGestures(缩放手势)
通过UISettings.setZoomGesturesEnabled(boolean)设置缩放手势是否启用:
》TiltGestures(倾斜手势)
通过UISettings.setTiltGesturesEnabled(boolean)设置倾斜手势是否启用:
》RotateGestures旋转手势:
通过UISettings.setRotateGesturesEnabled(boolean)设置倾斜手势是否启用:
除此之外,Amap哈有几个常用的监听器:
AMap.setOnMapClickListener(OnMapCLickListener):点击事件
AMap.setOnMapLongClickListener(OnMaplongClickListener):长按事件
AMap.setOnCameraChangeListener(OnCameraChangeListener):视图变换事件
*/
}