使用百度地图SDK来开发自己的程序(主要是考察自己读代码的能力

最重要的是先自己安装百度的demo,根据这张图然后去找对应类中的代码

首先应该获得所要使用百度sdk的程序的包名,然后根据百度的提示,得到自己的密钥,在之后根据提示来配置自己的环境,注意阅读时应该仔细,然后在根据提示就能得到自己的地图,,本文的关键是在地图的基础上实现定位功能,以及一些其他的小功能。

之后进入Android定位SDK的界面,在根据提示来配置定位的服务,注意的是在Android Studio中因为之前在/src/main/下创建了jniLibs文件夹,并且已经导入了东西,定位也需要导入一些so的东西,然后放在对应的文件夹下就可以了,还有注意在lib下导入jar包后,不要忘记在file下导入到工程中。

在androidManifest下注意配置key,添加服务以及权限的添加。

因为百度地图是自己带有Demo示例的,所以在使用百度地图时,切记先安装Demo,看看哪些代码可以实现功能,然后再结合到自己的代码中,这才是所谓的进步。主代码package com.test.dukang.mylocation;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.baidu.location.BDLocation;import com.baidu.location.BDLocationListener;import com.baidu.location.LocationClient;import com.baidu.location.LocationClientOption;import com.baidu.location.Poi;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.MapStatusUpdateFactory;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.map.PolylineOptions;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.ReverseGeoCodeResult;import java.util.ArrayList;import java.util.List;{flag = 0;//得到位置的客户端对象public LocationClient mLocationClient = null;//得到自己定位的回应信息public BDLocationListener myListener = new MyLocationListener();/*** 出发地点的button*/private Button mButton;/*** 出发地点的输入框*/private EditText mTextView;//指定达到的地点的buttonprivate Button mButtonTo;//到达地点的输入框private EditText mTextViewTo;//得到百度地图的对象private BaiduMap mBaiduMap = null;//得到搜索的对象private GeoCoder mSearch;//自己定义在布局中的mapviewMapView mMapView = null;//定位自己位置的按钮private Button mButtonPitch;Jstart;private double Wstart;Jend;private double Wend;(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//注意使用地图必须在ContentView之前初始化SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);//得到view中的控件mButton = (Button) findViewById(R.id.button);mMapView = (MapView) findViewById(R.id.bmapView);mButtonPitch = (Button) findViewById(R.id.button_pitch);mTextView = (EditText) findViewById(R.id.textview);mButtonTo = (Button) findViewById(R.id.button_to);mTextViewTo = (EditText) findViewById(R.id.textview_to);//从自己的地图view中获取百度地图mBaiduMap = mMapView.getMap();mLocationClient = new LocationClient(getApplicationContext());mLocationClient.registerLocationListener(myListener); //注册事件的监听者//初始化定位配置initLocation();//初始化搜索mSearch = GeoCoder.newInstance();//初始化代码mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {(GeoCodeResult result) {//判断是否搜索到地点,然后给出对应值if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {Toast.makeText(MainActivity.this, “未找到”, Toast.LENGTH_LONG).show();return;}mBaiduMap.addOverlay(new MarkerOptions().position(result.getLocation()).icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(result.getLocation()));//判断是开始点还是结束点,然后传入对应的值if (flag == 1) {Jstart = result.getLocation().latitude;Wstart = result.getLocation().longitude;} else if (flag == 2) {Jend = result.getLocation().latitude;Wend = result.getLocation().longitude;}String strInfo = String.format(“纬度:%f 经度:%f”,result.getLocation().latitude, result.getLocation().longitude);Toast.makeText(MainActivity.this, strInfo, Toast.LENGTH_LONG).show();}(ReverseGeoCodeResult reverseGeoCodeResult) {}});mButton.setOnClickListener(new View.OnClickListener() {(View v) {flag = 1;mSearch.geocode(new GeoCodeOption().city(“北京”).address(mTextView.getText().toString().trim()));}});mButtonTo.setOnClickListener(new View.OnClickListener() {(View v) {flag = 2;mSearch.geocode(new GeoCodeOption().city(“北京”).address(mTextViewTo.getText().toString().trim()));//在两者间画线LatLng p1 = new LatLng(Jstart, Wstart);LatLng p2 = new LatLng(Jend, Wend);List<LatLng> points = new ArrayList<LatLng>();points.add(p1);points.add(p2);OverlayOptions ooPolyline = new PolylineOptions().width(10).color(0xAAFF0000).points(points);mBaiduMap.addOverlay(ooPolyline);}});mButtonPitch.setOnClickListener(new View.OnClickListener() {(View v) {mLocationClient.start();}});}() {//初始化定位服务LocationClientOption option = new LocationClientOption();option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);option.setCoorType(“bd09ll”);int span = 1000;option.setScanSpan(span);option.setIsNeedAddress(true);option.setOpenGps(true);option.setLocationNotify(true);option.setIsNeedLocationDescribe(true);option.setIsNeedLocationPoiList(true);option.setIgnoreKillProcess(false);option.SetIgnoreCacheException(false);option.setEnableSimulateGps(false);mLocationClient.setLocOption(option);}class MyLocationListener implements BDLocationListener {(BDLocation location) {if (location.getLocType() == BDLocation.TypeGpsLocation || location.getLocType() == BDLocation.TypeNetWorkLocation) {Jstart = location.getLatitude();Wstart = location.getLongitude();LatLng point = new LatLng(location.getLatitude(), location.getLongitude());//在相应位置画一个小图标mBaiduMap.addOverlay(new MarkerOptions().position(point).icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_launcher)));mBaiduMap.setMapStatus(MapStatusUpdateFactory.newLatLng(point));//注意这里将定位关闭mLocationClient.stop();}}}}布局文件====”@dimen/activity_vertical_margin”tools:context=”.MainActivity”><com.baidu.mapapi.map.MapView=”fill_parent”android:clickable=”true” /><LinearLayout=”wrap_content”android:orientation=”horizontal”><Button=”wrap_content”android:text=”开始” /><EditText==”#55ff0000″android:textSize=”25sp” /><Button=><LinearLayout==”horizontal”><Button=”wrap_content”android:text=”驾车” /><Button=”wrap_content”android:text=”公交” /><Button=><LinearLayout=”@+id/end_linearLayout”android:orientation=”horizontal”><Button=”wrap_content”android:text=”结束” /><EditText==></RelativeLayout>配置文件==========”android.permission.MOUNT_UNMOUNT_FILESYSTEMS”></uses-permission><application=”@string/app_name”android:theme=”@style/AppTheme”><meta-dataandroid:name=”api_key”android:value=”26vu9I0M4LBb9yLvNGqRDm7m” /><meta-dataandroid:name=”com.baidu.lbsapi.API_KEY”android:value=”ryAHQdB4X493gPITWbmUGSkF” /><activity>=><service=></manifest>

效果图

乐观者在灾祸中看到机会;悲观者在机会中看到灾祸

使用百度地图SDK来开发自己的程序(主要是考察自己读代码的能力

相关文章:

你感兴趣的文章:

标签云: