android滴滴位置实现,百度地图实现【仿滴滴打车】

【实例简介】滴滴打车,位置变化,实时刷新

【实例截图】

91225140e86e88ef0f1bf32fce539832.jpg

59063e4b409c96856674f2b6096e2d1e.png

【核心代码】

package com.example.dididache;

import com.baidu.mapapi.SDKInitializer;

import com.baidu.mapapi.map.BaiduMap;

import com.baidu.mapapi.map.BaiduMap.OnMapStatusChangeListener;

import com.baidu.mapapi.map.BitmapDescriptor;

import com.baidu.mapapi.map.BitmapDescriptorFactory;

import com.baidu.mapapi.map.MapStatus;

import com.baidu.mapapi.map.MapStatusUpdate;

import com.baidu.mapapi.map.MapStatusUpdateFactory;

import com.baidu.mapapi.map.MapView;

import com.baidu.mapapi.map.Marker;

import com.baidu.mapapi.map.MarkerOptions;

import com.baidu.mapapi.map.OverlayOptions;

import com.baidu.mapapi.map.TextOptions;

import com.baidu.mapapi.model.LatLng;

import com.baidu.mapapi.search.core.SearchResult;

import com.baidu.mapapi.search.geocode.GeoCodeOption;

import com.baidu.mapapi.search.geocode.GeoCodeResult;

import com.baidu.mapapi.search.geocode.GeoCoder;

import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;

import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;

import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.Window;

import android.view.WindowManager;

import android.widget.Toast;

public class MapActivity extends Activity implements

OnGetGeoCoderResultListener {

MapView mMapView = null;

GeoCoder mSearch = null;

BaiduMap mBaiduMap;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏

// //在使用SDK各组件之前初始化context信息,传入ApplicationContext

// 注意该方法要再setContentView方法之前实现

SDKInitializer.initialize(getApplicationContext());

setContentView(R.layout.activity_main);

// 获取地图控件引用

mMapView = (MapView) findViewById(R.id.bmapView);

mBaiduMap = mMapView.getMap();

String mStrName = getIntent().getExtras().getString("name");

String mStrCity = getIntent().getExtras().getString("city");

String mStrDistrict = getIntent().getExtras().getString("district");

// 初始化搜索模块,注册事件监听

mSearch = GeoCoder.newInstance();

mSearch.setOnGetGeoCodeResultListener(this);

mSearch.geocode(new GeoCodeOption().city(mStrCity)

.address(mStrDistrict mStrName));

mBaiduMap.setOnMapStatusChangeListener(new OnMapStatusChangeListener() {

@Override

public void onMapStatusChangeStart(MapStatus arg0) {

// TODO Auto-generated method stub

}

@Override

public void onMapStatusChangeFinish(MapStatus arg0) {

// TODO Auto-generated method stub

LatLng ptCenter = mBaiduMap.getMapStatus().target; //获取地图中心点坐标

// 反Geo搜索

mSearch.reverseGeoCode(new ReverseGeoCodeOption()

.location(ptCenter));

}

@Override

public void onMapStatusChange(MapStatus arg0) {

// TODO Auto-generated method stub

}

});

}

@Override

protected void onDestroy() {

super.onDestroy();

// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理

mMapView.onDestroy();

}

@Override

protected void onResume() {

super.onResume();

// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理

mMapView.onResume();

}

@Override

protected void onPause() {

super.onPause();

// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理

mMapView.onPause();

}

@Override

public void onGetGeoCodeResult(GeoCodeResult result) {

// TODO Auto-generated method stub

//设置地图中心点坐标

MapStatusUpdate status = MapStatusUpdateFactory.newLatLng(result.getLocation());

mBaiduMap.animateMapStatus(status);

Toast.makeText(MapActivity.this, result.getAddress(), Toast.LENGTH_LONG).show();

}

@Override

public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {

// TODO Auto-generated method stub

if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {

Toast.makeText(MapActivity.this, "抱歉,未能找到结果", Toast.LENGTH_LONG)

.show();

return;

}

mBaiduMap.clear();

mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(result

.getLocation()));//改变地图状态?

Toast.makeText(MapActivity.this, result.getAddressDetail().city " "

result.getAddressDetail().district " " result.getAddressDetail().street

result.getAddressDetail().streetNumber,

Toast.LENGTH_LONG).show();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值