高德地圖根據經緯度定位
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):檢視變換事件
*/
}