java.lang.UnsatisfiedLinkError: GetDistanceByMC 百度DistanceUtil计算距离,出现错误

使用DistanceUtil计算距离的时候出现
java.lang.UnsatisfiedLinkError: GetDistanceByMC
实际代码如下
GeoPoint start = new GeoPoint(la, lo);
GeoPoint end = new GeoPoint(x, y);
double jl = DistanceUtil.getDistance(start, end);

出现错误 java.lang.UnsatisfiedLinkError: GetDistanceByMC
at com.baidu.platform.comjni.tools.JNITools.GetDistanceByMC(Native Method)

解决办法:
.地图、定位、搜索功能都需要BMapManager来管理,BMapManager提供四个接口,init, start, stop, destroy。建议在Application里生成BMapManager对象并初使化,在程序退出时调用destory,在需要使用sdk功能的activity的onCreate里调用start, onDestroy调用stop,或者onResume/onPause分别调用start和stop。 若没有初始化BMapManager对象,会出现“No implementation found for native Lcom/baidu/platform/comjni/tools/JNITools;.GetDistanceByMC (Ljava/lang/Object;)V”、“java.lang.UnsatisfiedLinkError: GetDistanceByMC”等错误。
、、、、、、。。。。。。。。
BMapManager mBMapMan = null;
mBMapMan = new BMapManager(getApplication());
mBMapMan.init(“你的应用申请百度的key”, null);
注意 mBMapMan 上面的操作要放在加载页面setContentView(R.layout.XXXX);之前额。。
其次要加上@Override
protected void onDestroy() {
if (mBMapMan != null) {
mBMapMan.destroy();
mBMapMan = null;
}
super.onDestroy();
}


@Override
protected void onPause() {
if (mBMapMan != null) {
mBMapMan.stop();
}
super.onPause();
}


@Override
protected void onResume() {
if (mBMapMan != null) {
mBMapMan.start();
}
super.onResume();
}


、、、、、、、、、、、、、、、、、、、、、、
另外发现一个问题
 GeoPoint p1LL = new GeoPoint(39971802, 116347927);
GeoPoint p2LL = new GeoPoint(39892131, 116498555);
double distance = DistanceUtil.getDistance(p1LL, p2LL);

如果得到的是精度和维度要转化一下额。
  1. GeoPoint geoPoint = new GeoPoint((int) ( 22.560034 * 1E6),  
  2.    (int) (113.940657 * 1E6));  
  3.      Point point = mapView.getProjection().toPixels(geoPoint, null);  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值