基本信息
源码名称:android GPS定位源码 地图显示位置源码
源码大小:10.76M
文件格式:.zip
开发语言:Java
更新时间:2021-03-01
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
android GPS定位源码 地图显示位置源码 有用到的小伙伴自提取
基于高德地图Android API快速搭建用车解决方案的示例
package apis.amap.com.usingcar; import android.app.Activity; import android.content.Intent; import android.graphics.BitmapFactory; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.MapView; 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 apis.amap.com.usingcar.lib.LocationTask; import apis.amap.com.usingcar.lib.OnLocationGetListener; import apis.amap.com.usingcar.lib.PositionEntity; import apis.amap.com.usingcar.lib.RegeocodeTask; import apis.amap.com.usingcar.lib.RouteTask; import apis.amap.com.usingcar.lib.Utils; public class MainActivity extends Activity implements AMap.OnCameraChangeListener, AMap.OnMapLoadedListener, OnLocationGetListener, View.OnClickListener, RouteTask.OnRouteCalculateListener { private MapView mMapView; private AMap mAmap; private TextView mAddressTextView; private Button mDestinationButton; private Marker mPositionMark; private LatLng mStartPosition; private RegeocodeTask mRegeocodeTask; private LinearLayout mDestinationContainer; private TextView mRouteCostText; private TextView mDesitinationText; private LocationTask mLocationTask; private ImageView mLocationImage; private LinearLayout mFromToContainer; private Button mCancelButton; private boolean mIsFirst = true; private boolean mIsRouteSuccess = false; public interface OnGetLocationListener { public void getLocation(String locationAddress); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(savedInstanceState); mLocationTask = LocationTask.getInstance(getApplicationContext()); mLocationTask.setOnLocationGetListener(this); mRegeocodeTask = new RegeocodeTask(getApplicationContext()); RouteTask.getInstance(getApplicationContext()) .addRouteCalculateListener(this); } private void init(Bundle savedInstanceState) { mAddressTextView = (TextView) findViewById(R.id.address_text); mDestinationButton = (Button) findViewById(R.id.destination_button); mDestinationButton.setOnClickListener(this); mMapView = (MapView) findViewById(R.id.map); mMapView.onCreate(savedInstanceState); mAmap = mMapView.getMap(); mAmap.getUiSettings().setZoomControlsEnabled(false); mAmap.setOnMapLoadedListener(this); mAmap.setOnCameraChangeListener(this); mDestinationContainer = (LinearLayout) findViewById(R.id.destination_container); mRouteCostText = (TextView) findViewById(R.id.routecost_text); mDesitinationText = (TextView) findViewById(R.id.destination_text); mDesitinationText.setOnClickListener(this); mLocationImage = (ImageView) findViewById(R.id.location_image); mLocationImage.setOnClickListener(this); mFromToContainer = (LinearLayout) findViewById(R.id.fromto_container); mCancelButton = (Button) findViewById(R.id.cancel_button); } private void hideView() { mFromToContainer.setVisibility(View.GONE); mDestinationButton.setVisibility(View.GONE); mCancelButton.setVisibility(View.GONE); } private void showView() { mFromToContainer.setVisibility(View.VISIBLE); mDestinationButton.setVisibility(View.VISIBLE); if (mIsRouteSuccess) { mCancelButton.setVisibility(View.VISIBLE); } } @Override public void onCameraChange(CameraPosition arg0) { hideView(); } @Override public void onCameraChangeFinish(CameraPosition cameraPosition) { showView(); mStartPosition = cameraPosition.target; mRegeocodeTask.setOnLocationGetListener(this); mRegeocodeTask .search(mStartPosition.latitude, mStartPosition.longitude); if (mIsFirst) { Utils.addEmulateData(mAmap, mStartPosition); if (mPositionMark != null) { mPositionMark.setToTop(); } mIsFirst = false; } } /** * 方法必须重写 */ @Override protected void onResume() { super.onResume(); mMapView.onResume(); } /** * 方法必须重写 */ @Override protected void onPause() { super.onPause(); mMapView.onPause(); } /** * 方法必须重写 */ @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); } /** * 方法必须重写 */ @Override protected void onDestroy() { super.onDestroy(); Utils.removeMarkers(); mMapView.onDestroy(); mLocationTask.onDestroy(); RouteTask.getInstance(getApplicationContext()).removeRouteCalculateListener(this); } @Override public void onMapLoaded() { MarkerOptions markerOptions = new MarkerOptions(); markerOptions.setFlat(true); markerOptions.anchor(0.5f, 0.5f); markerOptions.position(new LatLng(0, 0)); markerOptions .icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory .decodeResource(getResources(), R.drawable.icon_loaction_start))); mPositionMark = mAmap.addMarker(markerOptions); mPositionMark.setPositionByPixels(mMapView.getWidth() / 2, mMapView.getHeight() / 2); mLocationTask.startSingleLocate(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.destination_button: Intent intent = new Intent(this, DestinationActivity.class); startActivity(intent); break; case R.id.location_image: mLocationTask.startSingleLocate(); break; case R.id.destination_text: Intent destinationIntent = new Intent(this, DestinationActivity.class); startActivity(destinationIntent); break; } } @Override public void onLocationGet(PositionEntity entity) { // todo 这里在网络定位时可以减少一个逆地理编码 mAddressTextView.setText(entity.address); RouteTask.getInstance(getApplicationContext()).setStartPoint(entity); mStartPosition = new LatLng(entity.latitue, entity.longitude); CameraUpdate cameraUpate = CameraUpdateFactory.newLatLngZoom( mStartPosition, mAmap.getCameraPosition().zoom); mAmap.animateCamera(cameraUpate); } @Override public void onRegecodeGet(PositionEntity entity) { mAddressTextView.setText(entity.address); entity.latitue = mStartPosition.latitude; entity.longitude = mStartPosition.longitude; RouteTask.getInstance(getApplicationContext()).setStartPoint(entity); RouteTask.getInstance(getApplicationContext()).search(); } @Override public void onRouteCalculate(float cost, float distance, int duration) { mDestinationContainer.setVisibility(View.VISIBLE); mIsRouteSuccess = true; mRouteCostText.setVisibility(View.VISIBLE); mDesitinationText.setText(RouteTask .getInstance(getApplicationContext()).getEndPoint().address); mRouteCostText.setText(String.format("预估费用%.2f元,距离%.1fkm,用时%d分", cost, distance, duration)); mDestinationButton.setText("我要用车"); mCancelButton.setVisibility(View.VISIBLE); mDestinationButton.setOnClickListener(null); } }