Android 起调第三方导航,百度地图,高德地图,腾讯地图。起调高德地图导航

主要工具类

 

/*** Created by meixi on 2018/6/29.* 使用第三方导航:高德、百度。。。。。。。。。。*/
public class AmapUtil {public static final String BAIDU = "com.baidu.BaiduMap";public static final String GAODE = "com.autonavi.minimap";public static final String TENCENT = "com.tencent.map";/*** 启动高德App进行导航* <h3>Version</h3> 1.0* <h3>CreateTime</h3> 2016/6/27,13:58* <h3>UpdateTime</h3> 2016/6/27,13:58* <h3>CreateAuthor</h3>* <h3>UpdateAuthor</h3>* <h3>UpdateInfo</h3> (此处输入修改内容,若无修改可不写.)** @param sourceApplication 必填 第三方调用应用名称。如 amap* @param poiname 非必填 POI 名称* @param lat 必填 纬度* @param lon 必填 经度* @param dev 必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)* @param style 必填 导航方式(0 速度快; 1 费用少; 2 路程短; 3 不走高速;4 躲避拥堵;5 不走高速且避免收费;6 不走高速且躲避拥堵;* 7 躲避收费和拥堵;8不走高速躲避收费和拥堵))*//** 高德导航 **/public static void goToGaodeNaviActivity(Context context, String sourceApplication,String poiname, String lat, String lon, String dev, String style) {StringBuffer stringBuffer =new StringBuffer("androidamap://navi?sourceApplication=").append(sourceApplication);if (!TextUtils.isEmpty(poiname)) {stringBuffer.append("&poiname=").append(poiname);}stringBuffer.append("&lat=").append(lat).append("&lon=").append(lon).append("&dev=").append(dev).append("&style=").append(style);Intent intent =new Intent("android.intent.action.VIEW", android.net.Uri.parse(stringBuffer.toString()));intent.setPackage(GAODE);context.startActivity(intent);}/*** @param slat 起点* @param dlat 终点* @param dev 必填 是否偏移(0:lat 和 lon 是已经加密后的,不需要国测加密; 1:需要国测加密)* @param t t = 1(公交) =2(驾车) =4(步行)* @param showType 高德导航* /*"androidamap://route?sourceApplication=changanchuxing"* + "&slat=36.2&slon=116.1&sname=abc&dlat=36.3"* + "&dlon=116.2&dname=def&dev=0&m=0&t=1&showType=1"* 高德开放平台 http://lbs.amap.com/api/uri-api/guide/android-uri-explain/route/*/public static void goToGaodeNaviActivity(Context context, String sourceApplication, String slat,String slon, String sname, String dlat, String dlon, String dname, String dev, String m,String t, String showType) {String locationStr = "androidamap://route?sourceApplication="+ sourceApplication+"&slat="+ slat+ "&slon="+ slon+"&sname="+ sname+ "&dlat="+ dlat+ "&dlon="+ dlon+ "&dname="+ dname+ "&dev="+ dev+ "&m="+ m+ "&t="+ t+ "&showType="+ showType;Intent intent = new Intent("android.intent.action.VIEW",android.net.Uri.parse(/*stringBuffer.toString()*/locationStr));intent.setPackage(GAODE);context.startActivity(intent);}/*** 启动BaiduApp进行导航* <h3>Version</h3> 1.0* <h3>CreateTime</h3> 2016/6/27,11:23* <h3>UpdateTime</h3> 2016/6/27,11:23* <h3>CreateAuthor</h3> luzhenbang* <h3>UpdateAuthor</h3>* <h3>UpdateInfo</h3> (此处输入修改内容,若无修改可不写.)** @param context 上下文* @param origin 必选  起点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。例如:* latlng:34.264642646862,108.95108518068|name:我家* @param destination 必选 终点名称或经纬度,或者可同时提供名称和经纬度,此时经纬度优先级高,将作为导航依据,名称只负责展示。* @param mode 必选 导航模式,固定为transit、driving、walking,分别表示公交、驾车和步行* @param region 必选 城市名或县名 当给定region时,认为起点和终点都在同一城市,除非单独给定起点或终点的城市。* @param origin_region 必选  起点所在城市或县* @param destination_region 必选  终点所在城市或县* @param coord_type 可选 坐标类型,可选参数,默认为bd09经纬度坐标。* @param zoom 可选 展现地图的级别,默认为视觉最优级别。* @param src 必选 调用来源,规则:companyName|appName。*//** 百度导航 */public static void goToBaiduNaviActivity(Context context, String origin, String destination,String mode, String region, String origin_region, String destination_region,String coord_type, String zoom, String src) {StringBuffer stringBuffer = new StringBuffer("intent://map/direction?origin=");stringBuffer.append(origin).append("&destination=").append(destination).append("&mode=").append(mode);if (!TextUtils.isEmpty(region)) {stringBuffer.append("&region=").append(region);}if (!TextUtils.isEmpty(origin_region)) {stringBuffer.append("&origin_region=").append(origin_region);}if (!TextUtils.isEmpty(destination_region)) {stringBuffer.append("&destination_region=").append(destination_region);}if (!TextUtils.isEmpty(coord_type)) {stringBuffer.append("&coord_type=").append(coord_type);}if (!TextUtils.isEmpty(zoom)) {stringBuffer.append("&zoom=").append(zoom);}stringBuffer.append("&src=").append(src).append("#Intent;scheme=bdapp;package=" + BAIDU +";end");String intentString = stringBuffer.toString();try {Intent intent = Intent.getIntent(intentString);context.startActivity(intent);} catch (URISyntaxException e) {e.printStackTrace();}}/**** @param originlat 起点维度* @param originlon 起点经度* @param destinationlat 终点* @param mode 出行方式 导航模式,固定为transit(公交)、 driving(驾车)、walking(步行)和riding(骑行). 默认:driving* 具体看百度地图开放者平台官网  http://lbsyun.baidu.com/index.php?title=uri/api/android*//*// 公交路线规划//i1.setData(Uri.parse("baidumap://map/direction?origin=name:对外经贸大学|latlng:39.98871,116.43234&destination=name:西直门&mode=transit&sy=3&index=0&target=1"));// 驾车路线规划i1.setData(Uri.parse("baidumap://map/direction?region=beijing&origin=39.98871,116.43234&destination=name:西直门&mode=driving"));// 步行路线规划i1.setData(Uri.parse("baidumap://map/direction?region=beijing&origin=39.98871,116.43234&destination=40.057406655722,116.2964407172&mode=walking"));startActivity(i1);*/public static void goToBaiduNaviActivity(Context context, double originlat, double originlon,double destinationlat, double destinationlon, String mode) {String locationStr = "baidumap://map/direction?origin="+ GCJ02ToBD09(originlon, originlat)[1]+ ","+ GCJ02ToBD09(originlon, originlat)[0]+ "&destination="+ GCJ02ToBD09(destinationlon, destinationlat)[1]+ ","+ GCJ02ToBD09(destinationlon, destinationlat)[0]+ "&mode="+ mode;Intent intent = new Intent("android.intent.action.VIEW",android.net.Uri.parse(/*stringBuffer.toString()*/locationStr));intent.setPackage(BAIDU);context.startActivity(intent);}/** 腾讯地图 Uri 标识*/public  final static  String BASE_URL = "qqmap://map/";/*** 调用腾讯地图app驾车导航* (此处输入方法执行任务.)* <h3>Version</h3> 1.0* <h3>CreateTime</h3> 2017/11/9,15:31* <h3>UpdateTime</h3> 2017/11/9,15:31* <h3>CreateAuthor</h3>* <h3>UpdateAuthor</h3>* <h3>UpdateInfo</h3> (此处输入修改内容,若无修改可不写.)* @param context* @param from  选 出发地址* @param fromcoord 选 出发经纬度   移动端如果起点名称和起点坐标均未传递,则使用当前定位位置作为起点 如 39.9761,116.3282* @param to  必 目标地址* @param tocoord  必 目标经纬度 39.9761,116.3282* @param policy  选  本参数取决于type参数的取值*               公交:type=bus,policy有以下取值 0:较快捷 1:少换乘 2:少步行 3:不坐地铁*               驾车:type=drive,policy有以下取值 0:较快捷 1:无高速 2:距离 policy的取值缺省为0* @param coord_type  选 坐标类型,取值如下:1 GPS  2 腾讯坐标(默认)  如果用户指定该参数为非腾讯地图坐标系,则URI API自动进行坐标处理,以便准确对应到腾讯地图底图上。* @param type  必 公交:bus  驾车:drive  步行:walk(仅适用移动端)* @param referer  必  调用来源,一般为您的应用名称,为了保障对您的服务,请务必填写!*/public static  void invokeNavi(Context context, @NonNull String type, String coord_type, String from ,String fromcoord, @NonNull String to, @NonNull String tocoord, String policy, @NonNull String referer){StringBuffer stringBuffer  = new StringBuffer(BASE_URL).append("routeplan?").append("type=").append(type).append("&to=").append(to).append("&tocoord=").append(tocoord).append("&referer=").append(referer);if (!TextUtils.isEmpty(from)){stringBuffer.append("&from=").append(from);}if (!TextUtils.isEmpty(fromcoord)){stringBuffer.append("&fromcoord=").append(fromcoord);}if (!TextUtils.isEmpty(policy)){stringBuffer .append("&policy=").append(policy);}if (!TextUtils.isEmpty(coord_type)){stringBuffer .append("&coord_type=").append(coord_type);}Intent intent = new Intent();intent.setData(Uri.parse(stringBuffer.toString()));context.startActivity(intent);}/***  file:///E:/someDownCode/IntentMapGuide-master/%E8%85%BE%E8%AE%AF%E5%9C%B0%E5%9B%BE_URI%E8%A7%84%E8%8C%83%E6%96%87%E6%A1%A3_150417/URI%E8%A7%84%E8%8C%83%E6%96%87%E6%A1%A3.html* qqmap://map/routeplan?type=drive&from=天坛南门&fromcoord=39.873145,116.413306&to=国家大剧院&tocoord=39.907380,116.388501* coord=39.904956,116.389449  lat<纬度>,lng<经度>* //移动端启动腾讯地图App,并显示从出发点[天坛南门] 到 [目的地坐标(国家大剧院)] 的驾车路线规划* @param context* @param type 路线规划方式参数:公交 bus   驾车 drive    步行 walk* @param from* @param fromLat* @param fromLon* @param to* @param toLat* @param toLon*/public static void goToTenCentNaviActivity(Context context, String type, String from,double fromLat, double fromLon, String to, double toLat, double toLon) {String locationStr = "qqmap://map/routeplan?type="+ type+"&from="+ from+ "&fromcoord="+ fromLat+ ","+ fromLon+ "&to="+ to+ "&tocoord="+ toLat+ ","+ toLon;System.out.println("tencent-location:" + locationStr);Intent intent = new Intent("android.intent.action.VIEW", android.net.Uri.parse(locationStr));intent.setPackage(TENCENT);context.startActivity(intent);}/*** 根据包名检测某个APP是否安装* <h3>Version</h3> 1.0* <h3>CreateTime</h3> 2016/6/27,13:02* <h3>UpdateTime</h3> 2016/6/27,13:02* <h3>CreateAuthor</h3>* <h3>UpdateAuthor</h3>* <h3>UpdateInfo</h3> (此处输入修改内容,若无修改可不写.)** @param packageName 包名  百度的包名为 com.baidu.BaiduMap,高德com.autonavi.minimap,腾讯* @return true 安装 false 没有安装*/public static boolean isInstallByRead(String packageName) {return new File("/data/data/" + packageName).exists();}/** 检查手机上是否安装了指定的软件* @param context* @param packageName:应用包名* @return*/public static List<String> isAvilibleList(Context context){//获取packagemanagerfinal PackageManager packageManager = context.getPackageManager();//获取所有已安装程序的包信息List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);//用于存储所有已安装程序的包名List<String> packageNames = new ArrayList<String>();//从pinfo中将包名字逐一取出,压入pName list中if(packageInfos != null){for(int i = 0; i < packageInfos.size(); i++){String packName = packageInfos.get(i).packageName;if (packName.equals(BAIDU)) {packageNames.add(BAIDU);} else if (packName.equals(GAODE)) {packageNames.add(GAODE);}else if (packName.equals(TENCENT)) {packageNames.add(TENCENT);}}}//判断packageNames中是否有目标程序的包名,有TRUE,没有FALSEreturn packageNames;}/*** 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换* 即谷歌、高德 转 百度* 腾讯和高德经纬度一样**经纬度转换 http://blog.csdn.net/meegomeego/article/details/39927017* @param gcj_lon* @param gcj_lat* @return Double[lon, lat]*CoordtransformUtil文件坐标转换*/private static double x_PI = 3.14159265358979324 * 3000.0 / 180.0;public static Double[] GCJ02ToBD09(Double gcj_lon, Double gcj_lat) {double z =Math.sqrt(gcj_lon * gcj_lon + gcj_lat * gcj_lat) + 0.00002 * Math.sin(gcj_lat * x_PI);double theta = Math.atan2(gcj_lat, gcj_lon) + 0.000003 * Math.cos(gcj_lon * x_PI);Double[] arr = new Double[2];arr[0] = z * Math.cos(theta) + 0.0065;arr[1] = z * Math.sin(theta) + 0.006;return arr;}/*** 调用高德导航*//*public void aMap(View view){if (AMapUtil.isInstallByRead("com.autonavi.minimap")){AMapUtil.goToNaviActivity(this,"test",null,"34.264642646862","108.95108518068","1","2");}}*/
}

 

 

 

1、两个动画

 

<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="200"android:fromYDelta="50%p"android:toYDelta="0" />
</set>
<?xml version="1.0" encoding="utf-8"?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="200"android:fromYDelta="0"android:toYDelta="50%p" />
</set>

2、style

 

<style name="AnimViewshow" parent="@android:style/Theme"><item name="android:windowEnterAnimation">@animator/push_bottom_in</item><item name="android:windowExitAnimation">@animator/push_bottom_out</item>
</style>

3、dialoglayout

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="match_parent"android:background="#FFFFFF"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="#f5f5f5"android:orientation="vertical"><LinearLayoutandroid:id="@+id/neibaiduLayout"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:orientation="horizontal"android:visibility="gone"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="8dp"android:gravity="center"android:text="内置导航"android:textColor="#0b7cd4"android:textSize="15dp" /></LinearLayout><LinearLayoutandroid:id="@+id/baiduLayout"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:orientation="horizontal"android:visibility="gone"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="8dp"android:gravity="center"android:text="百度地图"android:textColor="#0b7cd4"android:textSize="15dp" /></LinearLayout><LinearLayoutandroid:id="@+id/gaodeLayout"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:orientation="horizontal"android:visibility="gone"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="8dp"android:gravity="center"android:text="高德地图"android:textColor="#0b7cd4"android:textSize="15dp" /></LinearLayout><LinearLayoutandroid:id="@+id/tencentLayout"android:layout_width="match_parent"android:layout_height="50dp"android:gravity="center"android:orientation="horizontal"android:visibility="gone"><TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="8dp"android:gravity="center"android:text="腾讯地图"android:textColor="#0b7cd4"android:textSize="15dp" /></LinearLayout></LinearLayout><TextViewandroid:id="@+id/dismiss"android:layout_width="match_parent"android:layout_height="44dp"android:gravity="center"android:textSize="15dp"android:textColor="#343434"android:text="取 消"/></LinearLayout>

4、showDialog

 

 /***hxw* 弹框显示导航地图** */public void showMapDialog(final String startName, final String endName, final double originlat, final double originlon, final double deslat, final double deslon) {final Dialog dialog;LayoutInflater inflater = LayoutInflater.from(MarkerActivity.this);View view = inflater.inflate(R.layout.navigation_dialog, null);LinearLayout baiduLayout = (LinearLayout) view.findViewById(R.id.baiduLayout);LinearLayout gaodeLayout = (LinearLayout) view.findViewById(R.id.gaodeLayout);LinearLayout tencentLayout = (LinearLayout) view.findViewById(R.id.tencentLayout);TextView dismiss = (TextView)view.findViewById(R.id.dismiss);dialog = new Dialog(MarkerActivity.this);dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);dialog.setContentView(view);Window dialogWindow = dialog.getWindow();dialogWindow.setGravity(Gravity.BOTTOM);dialogWindow.setWindowAnimations(R.style.AnimViewshow);//    dialogWindow.getDecorView().setPadding(0, 0, 0, 0);WindowManager.LayoutParams lp = dialogWindow.getAttributes();lp.width = WindowManager.LayoutParams.MATCH_PARENT;
//        dialogWindow.setGravity(Gravity.CENTER);//        lp.width = 900; // 宽度
//        lp.height = 650; // 高度
//        lp.alpha = 0.7f; // 透明度dialogWindow.setAttributes(lp);dialog.setCanceledOnTouchOutside(true);List<String> installedMapList = AmapUtil.isAvilibleList(MarkerActivity.this);if (installedMapList.size() == 0) {Toast.makeText(MarkerActivity.this, "请安装导航地图软件", Toast.LENGTH_LONG).show();return;}for (String map :installedMapList) {if (map.equals(AmapUtil.BAIDU)) {baiduLayout.setVisibility(View.VISIBLE);}else if (map.equals(AmapUtil.GAODE)) {gaodeLayout.setVisibility(View.VISIBLE);} else if (map.equals(AmapUtil.TENCENT)) {tencentLayout.setVisibility(View.VISIBLE);}}StringBuilder sb = new StringBuilder();baiduLayout.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AmapUtil.goToBaiduNaviActivity(MarkerActivity.this, originlat, originlon, deslat, deslon, "driving");dialog.dismiss();}});gaodeLayout.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {AmapUtil.goToGaodeNaviActivity(MarkerActivity.this, "yxbl","", String.valueOf(deslat), String.valueOf(deslon), "0", "0");dialog.dismiss();}});tencentLayout.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {
//                AmapUtil.goToTenCentNaviActivity(getContext(), "drive", startName, originlat, originlon, endName, deslat, deslon);String toc = String.valueOf(deslat)+","+String.valueOf(deslon);
//                AmapUtil.invokeNavi(mContext,"drive",null,null,null,"故宫","39.9761,116.3282",null,"textApp");AmapUtil.invokeNavi(mContext,"drive",null,null,null,endName,toc,null,"textApp");
                dialog.dismiss();}});dismiss.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});dialog.show();}

5、调用

 

showMapDialog("起点", string, latitude, longitude, lawd, lojd );

//string、起点位置如:体育路5号,latitude起点纬度,longitude起点经度,lawd终点纬度,lojd终点经度

 

起调高德地图导航:

 

private static final String GAODE_PACKAGE = "com.autonavi.minimap";

工具方法:

private void startGaodeNavi(double latitude, double longitude) {Intent intents = new Intent();intents.setData(Uri.parse("androidamap://navi?sourceApplication=softname&lat="+ latitude+ "&lon="+ longitude+ "&dev=0"));startActivity(intents);
}
private boolean checkApkExist(Context context, String packageName) {if (TextUtils.isEmpty(packageName)) {return false;}try {context.getPackageManager().getApplicationInfo(packageName, PackageManager.MATCH_UNINSTALLED_PACKAGES);return true;} catch (PackageManager.NameNotFoundException e) {return false;}
}
private void navigate(double longitude, double latitude) {if (checkApkExist(this, GAODE_PACKAGE)) {startGaodeNavi(latitude, longitude);} else {//showOneToast(R.string.qingxiananzhuanggaodeditu);ToastUtil.showToastLong(this, "请安装高德app,此刻正打开网页版");Intent intent = new Intent();intent.setAction("android.intent.action.VIEW");intent.setData(Uri.parse("http://uri.amap.com/navigation?"+ "to="+ longitude+ ","+ latitude+ "&mode=car&src=nyx_super"));startActivity(intent);}
}

 

启动数据有效

navigate(109.650222,23.05315);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数组】—冒泡排序选择排序---【巷子】

/*  什么是冒泡排序&#xff1a;从头到尾比较相邻的两个数的大小&#xff0c;如果符合条件则进行比较    【注】:从小到大进行排序  假设有一个数组 var arr [9,8,7,6,5,4]; 我们想要进行这个数组进行排序那么按照冒泡排序的规则我们可以进行演变和尝试  第一次比较…

lodash 根据某个字段排序处理

使用lodash库就行 const _ require(lodash); const users [{ user: fred, age: 48 },{ user: barney, age: 34 },{ user: fred, age: 42 },{ user: barney, age: 36 } ];// 以 user 升序排序 再 以 age 降序排序。 _.orderBy(users, [user, age], [asc, desc]); // >…

前端学习(2611):vuex实现增加

1添加组件 2导入 3添加效果 4

LR常见问题整理

首先要感谢群友的无私分享&#xff0c;才能得到这篇好的学习资料&#xff0c;整理得太好了&#xff0c;所以收藏保存&#xff0c;方便以后学习。 一&#xff1a;LoadRunner常见问题整理 1.LR 脚本为空的解决方法&#xff1a; 1.去掉ie设置中的第三方支持取消掉 2.在系统属性&a…

Android通知点击事件传递参数

显示通知private void processCustomMessage(Context context, Bundle bundle) {RemoteViews customView new RemoteViews(context.getPackageName(), R.layout.kongreveiver);NotificationCompat.Builder mBuilder new NotificationCompat.Builder(context);int ifnotifica …

小程序 报错 err code: 40029, errmsg: 'invalid code, hints: [ req_id: JhIay6yFe-XN5A3 ]'

发布小程序体验版的时候&#xff0c;直接修改原来的demo版的代码。 需要将后台的appID、appSecret换成最新的&#xff0c;就可以解决。

Android修改项目包名

1.首先新建一个项目&#xff0c;默认结构如下&#xff0c;红色的就是包名 2&#xff0c;更改显示项目结构方式&#xff0c;首先1&#xff0c;点击齿轮的图案。然后把第二步中的勾去掉 3更改项目结构显示后如下&#xff1a; 4&#xff0c;选中要修改的报名&#xff0c;快捷键shi…

ora--12154 :TNS :could not resolve the connect identifier specified 错误处理

ora--12154 &#xff1a;TNS :could not resolve the connect identifier specified 错误处理 今天碰到一个情况&#xff0c;有一台机器用PLSQL连接数据库怎么也连不上&#xff0c;一直报这个错&#xff1a;ora--12154 &#xff1a;TNS :could not resolve the connect identif…

刷题总结——xor(ssoj)

题目&#xff1a; 题目背景 OURCE&#xff1a;NOIP2015-SHY-7 题目描述 求一棵带边权的树的一条最大 Xor 路径的值。这里的“路径”不一定从根到叶子结点&#xff0c;中间一段路径只要满足条件也可以。 输入格式 第一行&#xff0c;一个整数 N &#xff0c;表示一颗树有 N 个节…

pm2 可视化在线监控平台 介绍 keymetrics

使用node的同学进行项目部署时&#xff0c;基本上都是用pm2进行部署。 我使用keymetrics进行实时监控 1、进行登录 地址&#xff1a;https://app.keymetrics.io/#/register 2、获取系统分配public key和secret key 3、在安装有pm2的服务器端输入以下命令 pm2 interact your-…

工作116:确定需求报告

1.显示发布页面1)调用分发接口 获取表单类型/internal/plugins/{plugin-keys}/catalog-items/different2)调用经管接口 发布页内容,获取发布页数据/task/1/release3)填写完表单数据 点击确定1&#xff09;判别是图文发布还是视频发布1) 视频发布2) 图文发布调用分发接口创建图…

Android百度云推送接入,附完整代码

1、创建应用获取api_key 百度云推送&#xff1a;http://push.baidu.com/ SDK下载&#xff1a;http://push.baidu.com/sdk/push_client_sdk_for_android 2、添加jar到libs文件下 compile files(libs/galaxy.jar) implementation files(libs/pushservice-6.1.1.21.jar) impleme…

新建用户、付权限命令

删除已有用户及与用户相关的 drop user usernam cascade; 以DBA登录 sqlplus sys/gislxghas sysdba 创建表空间 create tablespace workdatafile E:\ghoa\ldghTableSpace\work.dbfsize 400m autoextend on next 20m online; 创建新用户 create user work identified…

Spring自动装配----注解装配----Spring自带的@Autowired注解

Spring自动装配----注解装配----Spring自带的Autowired注解 父类 package cn.ychx;public interface Person {public void sayHello();} 学生子类package cn.ychx;public class Student implements Person {Overridepublic void sayHello() {System.out.println("Hello! M…

mac 查看指定端口情况 并杀死该进程

本来自己的8081端口很好用的&#xff0c;但是突然访问不了了。估计测试的时候有其他进程占用了端口。下面我需要查杀他。 1、查看端口情况 lsof -i tcp:8081COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 26519 caowei 31u IPv4 0x57e8…

工作117:eachat图

let option1 {tooltip : {trigger: axis},legend: {data:[邮件营销,联盟广告,视频广告,直接访问,搜索引擎]},calculable : true,xAxis : [{type : category,boundaryGap : false,axisTick: {show: false},data : [周一,周二,周三,周四,周五,周六,周日]}],yAxis : [{type : val…

CreateProcess error = 2,系统找不到指定的文件

针对有安装NDK用户Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/bin/mips64el-linux-android-strip 找不到, 导致编译报错 也就是说在Android/Sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/ 路径下找…

有关性能测试结果的几点分析原则

性能 测试结果的分析原则&#xff1a; 具体问题具体分析&#xff08;这是由于不同的应用系统&#xff0c;不同的测试目的&#xff0c;不同的性能关注点&#xff09; 查找瓶颈时按以下顺序&#xff0c;由易到难。 服务器硬件瓶颈-〉网络瓶颈&#xff08;对局域网&#xff0c;可以…