|
|
@@ -4,38 +4,44 @@ import android.content.BroadcastReceiver;
|
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.content.IntentFilter;
|
|
|
+import android.net.Uri;
|
|
|
import android.os.Bundle;
|
|
|
import android.support.v4.content.LocalBroadcastManager;
|
|
|
+import android.view.Menu;
|
|
|
+import android.view.MenuItem;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
import com.baidu.mapapi.map.MapView;
|
|
|
import com.baidu.mapapi.model.LatLng;
|
|
|
import com.baidu.mapapi.search.core.SearchResult;
|
|
|
-import com.baidu.mapapi.search.route.BikingRouteResult;
|
|
|
import com.baidu.mapapi.search.route.DrivingRoutePlanOption;
|
|
|
import com.baidu.mapapi.search.route.DrivingRouteResult;
|
|
|
import com.baidu.mapapi.search.route.OnGetRoutePlanResultListener;
|
|
|
import com.baidu.mapapi.search.route.PlanNode;
|
|
|
import com.baidu.mapapi.search.route.RoutePlanSearch;
|
|
|
-import com.baidu.mapapi.search.route.TransitRouteResult;
|
|
|
-import com.baidu.mapapi.search.route.WalkingRouteResult;
|
|
|
+import com.lidroid.xutils.ViewUtils;
|
|
|
+import com.lidroid.xutils.view.annotation.ViewInject;
|
|
|
import com.xzjmyk.pm.activity.BdLocationHelper;
|
|
|
import com.xzjmyk.pm.activity.MyApplication;
|
|
|
import com.xzjmyk.pm.activity.R;
|
|
|
import com.xzjmyk.pm.activity.ui.base.BaseActivity;
|
|
|
-import com.xzjmyk.pm.activity.util.BaiduMapUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.BaiduMapUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.OnGetRoutePlanResult;
|
|
|
import com.xzjmyk.pm.activity.util.DrivingRouteOverlay;
|
|
|
|
|
|
-public class NavigationActivity extends BaseActivity {
|
|
|
+import java.io.File;
|
|
|
|
|
|
+public class NavigationActivity extends BaseActivity {
|
|
|
+ @ViewInject(R.id.baiduMap)
|
|
|
private MapView baiduMap;
|
|
|
private LatLng toLocation;
|
|
|
|
|
|
|
|
|
- private BroadcastReceiver receiver = new BroadcastReceiver() {
|
|
|
+ private BroadcastReceiver upLocationReceiver = new BroadcastReceiver() {
|
|
|
@Override
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
-// loadMap();
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -43,30 +49,55 @@ public class NavigationActivity extends BaseActivity {
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_navigation);
|
|
|
- baiduMap = (MapView) findViewById(R.id.baiduMap);
|
|
|
- Intent intent = getIntent();
|
|
|
- if (intent == null) new NullPointerException("intent is null");
|
|
|
- toLocation = getIntent().getParcelableExtra("toLocation");
|
|
|
- IntentFilter filter = new IntentFilter();
|
|
|
- filter.addAction(BdLocationHelper.UPLOCATION_ACTION);
|
|
|
- LocalBroadcastManager.getInstance(ct).registerReceiver(receiver, filter);
|
|
|
- loadMap();
|
|
|
+ ViewUtils.inject(this);
|
|
|
+ initReceiver();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
+ getMenuInflater().inflate(R.menu.menu_navigation, menu);
|
|
|
+ return super.onCreateOptionsMenu(menu);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
+ if (item.getItemId() == R.id.other_map) {
|
|
|
+ //使用其他地图
|
|
|
+ userOtherMap();
|
|
|
+ }
|
|
|
+ return super.onOptionsItemSelected(item);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ initView();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
protected void onDestroy() {
|
|
|
super.onDestroy();
|
|
|
- LocalBroadcastManager.getInstance(ct).unregisterReceiver(receiver);
|
|
|
+ LocalBroadcastManager.getInstance(ct).unregisterReceiver(upLocationReceiver);
|
|
|
}
|
|
|
|
|
|
- private void loadMap() {
|
|
|
+ private void initReceiver() {
|
|
|
+ IntentFilter filter = new IntentFilter();
|
|
|
+ filter.addAction(BdLocationHelper.UPLOCATION_ACTION);
|
|
|
+ LocalBroadcastManager.getInstance(ct).registerReceiver(upLocationReceiver, filter);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ if (toLocation == null && getIntent() != null)
|
|
|
+ toLocation = getIntent().getParcelableExtra("toLocation");
|
|
|
LatLng location = MyApplication.getInstance().getBdLocationHelper().getLocation();
|
|
|
BaiduMapUtil.getInstence().setMapViewPoint(baiduMap, location);
|
|
|
- driving(location, toLocation);
|
|
|
+ drawDriving(location, toLocation);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- private void driving(LatLng formLocation, LatLng toLocation) {
|
|
|
+ private void drawDriving(LatLng formLocation, LatLng toLocation) {
|
|
|
//其中myLar myLon 是起点的经纬度 lat和lon是终点的经纬度
|
|
|
RoutePlanSearch newInstance = RoutePlanSearch.newInstance();
|
|
|
newInstance.setOnGetRoutePlanResultListener(listener);
|
|
|
@@ -81,18 +112,8 @@ public class NavigationActivity extends BaseActivity {
|
|
|
}
|
|
|
|
|
|
|
|
|
- private OnGetRoutePlanResultListener listener = new OnGetRoutePlanResultListener() {
|
|
|
- @Override
|
|
|
- public void onGetWalkingRouteResult(WalkingRouteResult walkingRouteResult) {
|
|
|
+ private OnGetRoutePlanResultListener listener = new OnGetRoutePlanResult() {
|
|
|
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onGetTransitRouteResult(TransitRouteResult transitRouteResult) {
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
public void onGetDrivingRouteResult(DrivingRouteResult result) {
|
|
|
//驾车
|
|
|
if (result == null || SearchResult.ERRORNO.RESULT_NOT_FOUND == result.error) {
|
|
|
@@ -107,10 +128,51 @@ public class NavigationActivity extends BaseActivity {
|
|
|
overlay.zoomToSpan();
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void onGetBikingRouteResult(BikingRouteResult bikingRouteResult) {
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+ private void userOtherMap() {
|
|
|
+ userBaiduWebMap();
|
|
|
+// if (isInstallBaidu()) {
|
|
|
+// LogUtil.i("百度地图客户端已经安装");
|
|
|
+// userBauduMap();
|
|
|
+// } else {
|
|
|
+// LogUtil.i("百度地图客户端没有安装");
|
|
|
+// userBaiduWebMap();
|
|
|
+// }
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isInstallBaidu() {
|
|
|
+ return new File("/data/data/" + "com.baidu.BaiduMap").exists();
|
|
|
+ }
|
|
|
|
|
|
+ private boolean isInstallGaode() {
|
|
|
+ return new File("/data/data/" + "com.autonavi.minimap").exists();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void userBauduMap() {
|
|
|
+ try {
|
|
|
+ Intent intent = new Intent();
|
|
|
+ intent.setData(Uri.parse("baidumap://map/navi?location=" + toLocation.latitude + "," + toLocation.longitude));
|
|
|
+ startActivity(intent);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
- };
|
|
|
+ }
|
|
|
+
|
|
|
+ private void userBaiduWebMap() {
|
|
|
+ LatLng location = MyApplication.getInstance().getBdLocationHelper().getLocation();
|
|
|
+ String url = "http://api.map.baidu.com/direction?" +
|
|
|
+ "origin=latlng:" + location.latitude + "," + location.longitude + "|name:起点" +
|
|
|
+ "&destination=latlng:" + toLocation.latitude + "," + toLocation.longitude + "|name:终点" +
|
|
|
+ "&mode=driving®ion=深圳&output=html&src=com.xzjmyk.pm.activity";
|
|
|
+ String title = "导航";
|
|
|
+ LogUtil.i(url);
|
|
|
+ Intent intent=new Intent(ct,NavigationWebActivity.class);
|
|
|
+ intent.putExtra("title",title)
|
|
|
+ .putExtra("url",url);
|
|
|
+ startActivity(intent);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|