Java tutorial
package com.tsroad.map; import android.app.ActionBar; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.graphics.Color; import android.location.Location; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.Button; 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.LocationSource; import com.amap.api.maps.MapView; import com.amap.api.maps.SupportMapFragment; import com.amap.api.maps.model.BitmapDescriptor; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.MyLocationStyle; import java.util.ArrayList; /** % @authors Keung Charteris & T.s.road CZQ % @version 1.0 ($Revision$) % @addr. GUET, Gui Lin, 540001, P.R.China % @contact : cztsiang@gmail.com % @date Copyright(c) 2016-2020, All rights reserved. % This is an open access code distributed under the Creative Commons Attribution License, which permits % unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. * Created by tsroad on 27/04/15. */ /** * AMapV2????? */ public class PositionButtonActivity extends FragmentActivity implements LocationSource, AMapLocationListener, GestureDetector.OnGestureListener { private AMap aMap = null; private MapView mapView; private OnLocationChangedListener mListener; private LocationManagerProxy mAMapLocationManager; private Marker marker;// ?? @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* * ?; * ?, * ?? * */ //Demo???? // MapsInitializer.sdcardDir =OffLineMapUtils.getSdCacheDir(this); // mapView = (MapView) findViewById(R.id.main_mapView); Log.e((Thread.currentThread()) + "------------", this.getClass() + " run-----------"); // mapView.onCreate(savedInstanceState);// ? init(); } /** * ? */ private void init() { if (aMap == null) { aMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); setUpMap(); } } /** * amap */ private void setUpMap() { ArrayList<BitmapDescriptor> giflist = new ArrayList<BitmapDescriptor>(); giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point1)); giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point2)); giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point3)); giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point4)); giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point5)); // giflist.add(BitmapDescriptorFactory.fromResource(R.drawable.point6)); marker = aMap.addMarker(new MarkerOptions().anchor(0.5f, 0.5f).icons(giflist).period(50)); // ??? MyLocationStyle myLocationStyle = new MyLocationStyle(); myLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.drawable.location_marker));// ?? myLocationStyle.strokeColor(Color.BLACK);// myLocationStyle.radiusFillColor(Color.argb(100, 0, 0, 180));// // myLocationStyle.anchor(int,int)//?? myLocationStyle.strokeWidth(0.1f);// aMap.setMyLocationStyle(myLocationStyle); aMap.setMyLocationRotateAngle(180); aMap.setLocationSource(this);// ?? aMap.getUiSettings().setMyLocationButtonEnabled(true);// ?? aMap.setMyLocationEnabled(true);// true????false???????false //??? ????????? aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE); } /** * ? */ @Override protected void onResume() { super.onResume(); mapView.onResume(); } /** * ? */ @Override protected void onPause() { super.onPause(); mapView.onPause(); deactivate(); } /** * ? */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mapView.onSaveInstanceState(outState); } /** * ? */ @Override protected void onDestroy() { super.onDestroy(); } /** * ? */ @Override public void onLocationChanged(Location location) { } @Override public void onProviderDisabled(String provider) { } @Override public void onProviderEnabled(String provider) { } @Override public void onStatusChanged(String provider, int status, Bundle extras) { } /** * ??? */ @Override public void onLocationChanged(AMapLocation aLocation) { if (mListener != null && aLocation != null) { mListener.onLocationChanged(aLocation);// ?? marker.setPosition(new LatLng(aLocation.getLatitude(), aLocation.getLongitude()));// ?? float bearing = aMap.getCameraPosition().bearing; aMap.setMyLocationRotateAngle(bearing);// ?? } } /** * ? */ @Override public void activate(OnLocationChangedListener listener) { mListener = listener; if (mAMapLocationManager == null) { mAMapLocationManager = LocationManagerProxy.getInstance(this); /* * mAMapLocManager.setGpsEnable(false); * 1.0.2true???gps?false?true Location * API?GPS??? * ??provider?2000??????? */ mAMapLocationManager.requestLocationUpdates(LocationProviderProxy.AMapNetwork, 2000, 10, this); } } /** * ?? */ @Override public void deactivate() { mListener = null; if (mAMapLocationManager != null) { mAMapLocationManager.removeUpdates(this); mAMapLocationManager.destory(); } mAMapLocationManager = null; } @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return false; } }