public void StartNavi(View view) { int lat = (int)(mLat1 * 1E6); int lon = (int)(mLon1 * 1E6); GeoPoint pt1 = new GeoPoint(lat, lon); lat = (int)(mLat2 * 1E6); lon = (int)(mLon2 * 1E6); GeoPoint pt2 = new GeoPoint(lat, lon); // 构建 导航参数 NaviPara para = new NaviPara(); para.StartPoint = pt1; para.StartName = "从这里开始"; para.EndPoint = pt2; para.EndName = "到这里结束"; try { BaiduMapNavigation.OpenBaiduMapNavi(para, this); } catch (BaiduMapAppNotSupportNaviException e) { e.PrintStackTrace(); // 居然不走原版的这个, 可能是IKVM的bug, 也可能是我能力不够, 哎, 求大神指路 // 用下面的 RuntimeException 是不对的, 虽然照顾到了 // Com.Baidu.Mapapi.Navi.BaiduMapAppNotSupportNaviException // 但是 OpenBaiduMapNavi 方法还可能会抛一个 // Com.Baidu.Mapapi.Navi.IllegalNaviArgumentException // 这样就没法区分了 } catch (RuntimeException e) { e.PrintStackTrace(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetMessage("您尚未安装百度地图app或app版本过低,点击确认安装?"); builder.SetTitle("提示"); builder.SetPositiveButton("确认", new IOnClickPositiveButtonListenerImpl(this)); builder.SetNegativeButton("取消", new IOnClickNegativeButtonListenerImpl(this)); builder.Create().Show(); } }
public void StartNavi(View view) { LatLng pt1 = new LatLng(mLat1, mLon1); LatLng pt2 = new LatLng(mLat2, mLon2); // ���� �������� NaviPara para = new NaviPara(); para.StartPoint = pt1; para.StartName = "�����↑ʼ"; para.EndPoint = pt2; para.EndName = "���������"; try { BaiduMapNavigation.OpenBaiduMapNavi(para, this); } catch (BaiduMapAppNotSupportNaviException e) { e.PrintStackTrace(); // ��Ȼ����ԭ������, ������IKVM��bug, Ҳ����������������, ��, �����ָ· // ������� RuntimeException + if/else �ǶԵ���, �ӵ� } catch (RuntimeException e) { // (imknown ע)����ԭ�������������� : e.Message // Android.Runtime.Extensions.JavaCast<BaiduMapAppNotSupportNaviException>(e); // Android.Runtime.Extensions.JavaCast<IllegalNaviArgumentException>(e); string currentExceptionSimpleName = e.Class.SimpleName; string classBaiduMapAppNotSupportNaviExceptionSimpleName = typeof(BaiduMapAppNotSupportNaviException).Name; // string classIllegalNaviArgumentExceptionSimpleName = typeof(IllegalNaviArgumentException).Name; if (classBaiduMapAppNotSupportNaviExceptionSimpleName == currentExceptionSimpleName) { e.PrintStackTrace(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetMessage("����δ��װ�ٶȵ�ͼapp��app�汾���ͣ����ȷ�ϰ�װ��"); builder.SetTitle("��ʾ"); // builder.SetPositiveButton("ȷ��", delegate {}); // builder.SetPositiveButton("ȷ��", delegate(object sender, DialogClickEventArgs args) {int which = args.Which;}); // builder.SetPositiveButton("ȷ��", (sender, args) => {int which = args.Which;}); // builder.SetPositiveButton("ȷ��", (object sender, DialogClickEventArgs args) => {int which = args.Which;}); builder.SetPositiveButton("ȷ��", (sender, args) => { IDialogInterface dialog = (IDialogInterface)sender; // IDialogInterface dialog = Android.Runtime.Extensions.JavaCast<IDialogInterface>(sender); dialog.Dismiss(); BaiduMapNavigation.GetLatestBaiduMapApp(this); }); builder.SetNegativeButton("ȡ��", (sender, args) => { IDialogInterface dialog = (IDialogInterface)sender; dialog.Dismiss(); }); builder.Create().Show(); } } }
public void StartWebNavi(View view) { int lat = (int)(mLat1 * 1E6); int lon = (int)(mLon1 * 1E6); GeoPoint pt1 = new GeoPoint(lat, lon); lat = (int)(mLat2 * 1E6); lon = (int)(mLon2 * 1E6); GeoPoint pt2 = new GeoPoint(lat, lon); // 构建 导航参数 NaviPara para = new NaviPara(); para.StartPoint = pt1; para.EndPoint = pt2; BaiduMapNavigation.OpenWebBaiduMapNavi(para, this); }
public void StartWebNavi(View view) { LatLng pt1 = new LatLng(mLat1, mLon1); LatLng pt2 = new LatLng(mLat2, mLon2); // ���� �������� NaviPara para = new NaviPara(); para.StartPoint = pt1; para.EndPoint = pt2; BaiduMapNavigation.OpenWebBaiduMapNavi(para, this); }