モバイル開発の特徴としては、マップ機能は絶対に不可欠です。次に、我々は、エントリのレベルに到達するために、小さなプロジェクトを通ってきます。
最初のキーを適用することで、その後、プロジェクトに設定され、私は複数の項目が自分のBaiduのを知っている必要はありませんが存在する場合の開発ツールは、Androidのメーカーです使用しました。その後、我々は、独自のプロジェクトを作成する作業を開始し、
我々は最初のテキストは、その場所の詳細を表示する使用して、レイアウトファイルのTextViewコントロールに追加、これは難しいことではありません。その後、我々は、位置情報サービスをオンにする方法、で手と足の展示活動に必要ですか?
私たちはあなたにも書くことができ、あなたがこれを書くことができ、我々はコンテキストに渡す必要があるオブジェクトを、インスタンス化することによってLocationClientを必要とします
getApplicationContext()そして、それを呼び出します
registerLocationListener(新しい MyLocationListener())括弧は、当社の登録されたリスナーは、リスナーの実現であります
BDLocationListenerの言い訳は、我々は内部のリスナーに必要
onReceiveLocation()コード内のいくつかのロジックを記述するための方法は、我々はBDLocationListener追加注意を払うブラケットに必要
DLocationnListenerターゲットはもちろん、機能を位置決めした後、返されたデータ、私たちの現在のデータによって運ばれるオープンデータにある実際には、オブジェクト
ので、もう一度、と読むことができません
私たちは情報を見て方法を知っているいくつかのロジックコードを書くonReceiveLocation()メソッドは、目的がなることです。
********
我々のようにする必要があり
mLocationClient = 新しい新しい LocationClient(getApplicationContext()); mLocationClient .registerLocationListener(新しい新しい MyLocationListener()); リスナー登録 後添加を
SDKInitializer。初期化(getApplicationContext())。 setContentView(R.layout。activity_main);
一覧<文字列> permissionList = 新しい ArrayListを<>(); もし(ContextCompat checkSelfPermission。(MainActivity 本。、Manifest.permission ACCESS_FINE_LOCATION!)= PackageManager PERMISSION_GRANTED){ permissionList.add(Manifest.permission ACCESS_FINE_LOCATION)。 } であれば(ContextCompat。checkSelfPermission(MainActivity。この、Manifest.permission。READ_PHONE_STATE)= PackageManager!。PERMISSION_GRANTED){ permissionList.add(Manifest.permission。READ_PHONE_STATE)。 } もし(ContextCompat checkSelfPermission。(MainActivity 本。、Manifest.permission WRITE_EXTERNAL_STORAGE!)= PackageManager PERMISSION_GRANTED){ permissionList.add(Manifest.permission WRITE_EXTERNAL_STORAGE)。 } もし(!permissionList.isEmpty()){ String []型の権限= permissionList.toArray(新しい文字列[permissionList.size()])。 ActivityCompat。requestPermissions(MainActivity。このパーミッション、1)。 } 他 { requestLocation(); //所有如果权限都同意了的 次に始まります
requestLocation()メソッドたロジック} // アプリケーションの権限 、 携帯電話を実行している 6.0 のランタイム許可の導入、
プライベート無効 requestLocation(){
}在这个方法里面我们需要开始我们的第一次定位了,定位的话我们一定需要
LocationClientOption对象的一个实例,再在这个对象的基础上设置一些参数
private void requestLocation() {
LocationClientOption option = new LocationClientOption();
option.setCoorType("bd09ll");
option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
option.setScanSpan(5000);
option.setIsNeedAddress(true);
//表示我们需要当前位置的详细信息
option.setOpenGps(true);
option.setNeedDeviceDirect(true);
mLocationClient.setLocOption(option);//最后一定要有这个方法,用来保证前面设置的一些参数可以实现
//创建一个LocationClientOption对象,并且进行初始化设置,记好最后一定要在
// onDestory()メソッドは、電気のコストを防ぐために破壊されます
}
設定が完了したら、私たちはあなたの場所をオンにしないでください、私達はちょうどセットの測位モードを、そして、私たちは、このメソッド内にある
追加するには
baiduMap .setMyLocationEnabled(真の); // ポジショニングのデフォルト mLocationClient .start(); //は戻って私たちの前の登録リスナーの内部に立地、結果の場所をオンにしますさて、現在我々が置か 開くようにアップ。
位置付け内部たちの以前登録されたリスナーに戻るには、自然の結果。
そして、 私たちは自分のものの内部リスナーに達成する必要があります:
public class MyLocationListener implements BDLocationListener { @Override public void onReceiveLocation(BDLocation location) { StringBuilder currentPosition = new StringBuilder(); currentPosition.append("纬度:").append(location.getLatitude()).append("\n"); currentPosition.append("经线:").append(location.getLongitude()).append("\n"); currentPosition.append("国家:").append(location.getCountry()).append("\n"); currentPosition.append("省:").append(location.getProvince()).append("\n"); currentPosition.append("市:").append(location.getCity()).append("\n"); currentPosition.append("区:").append(location.getDistrict()).append("\n"); currentPosition.append("街道:").append(location.getStreet()).append("\n"); currentPosition.append("定位方式:"); if (location.getLocType() == BDLocation.TypeGpsLocation) { currentPosition.append("GPS"); } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) { currentPosition.append("网络")} positionText.setText(currentPosition); } }ここで、我々は置きます
BDLocation ターゲットバンドデータ
getProvince()または
getLongitude()メソッドは、交換すると私たちは情報を理解見ることができます。
この
時間は、私たちが主位置決め機能を完了しているが、我々は、我々はプログラムから撤退しなければならないので、位置決めがパワー多くの作業であることを覚えておく必要がシャットダウンの位置です。
@Override 保護ボイド onDestroy(){ スーパー .onDestroy(); mLocationClient .stopは(); // ストップが配置しました }
文書は教師郭林の著作に基づいており、自分の理解の外に遊んで、また、独自の携帯電話の効果を達成するため、おそらくBaiduの書かれた記事があるだろう、マップSDK
があれば一緒に科学を子供の靴を学びます。してください