首页 / 浏览问题 / 移动GIS / 问题详情
移动端超图 iOS 10i路径分析崩溃
48EXP 2020年01月08日
[m_navigation routeAnalyst]路径分析崩溃

1个回答

麻烦把代码发出来看下,应该是设置的问题
1,752EXP 2020年01月08日
这是初始化

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *fileUdb = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"NewDataSource.udb"];

    NSString *filesnm = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"luwang_Network.snm"];

    

    DatasourceConnectionInfo *info = [[DatasourceConnectionInfo alloc]init];

    [info setEngineType:ET_UDB];

    [info setServer:fileUdb];

    info.alias = @"NewData";

    Datasource *naviData = [[m_workspace datasources] open:info];

    DatasetVector *roadDataset = (DatasetVector*)[[naviData datasets]getWithName:@"luwang_Network"];

    m_navigation = [m_mapControl getNavigation2];

    [m_navigation setPathVisible: true];

    [m_navigation setDeviateTolerance:500.00];

    [m_navigation setNetworkDataset:roadDataset];

    //z加载导航模型

    [m_navigation loadModel:filesnm];

    if ( [m_navigation load]) {

        NSLog(@"YES");

    }else{

        NSLog(@"NO ");

    }

这里是路径分析

                Point2Ds *point2Ds = [[Point2Ds alloc]init];

                [point2Ds add:_startPoint2D];

                [point2Ds add:_endPoint2D];

                if ([m_mapControl.map.prjCoordSys type]!= PCST_EARTH_LONGITUDE_LATITUDE)

                {

                    PrjCoordSys *desPrjCoorSys = [[PrjCoordSys alloc]init];

                    [desPrjCoorSys setType:PCST_EARTH_LONGITUDE_LATITUDE];

                    CoordSysTransParameter *param = [[CoordSysTransParameter alloc]init];

                    [CoordSysTranslator convert:point2Ds PrjCoordSys:desPrjCoorSys PrjCoordSys:m_mapControl.map.prjCoordSys CoordSysTransParameter:param CoordSysTransMethod:MTH_GEOCENTRIC_TRANSLATION];

                }

                [m_navigation setStartPoint:[point2Ds getItem:0].x sPointY:[point2Ds getItem:0].y];

                [m_navigation setDestinationPoint:[point2Ds getItem:1].x dPointY:[point2Ds getItem:1].y];

                

                if([m_navigation isGuiding])

                {

                    [m_navigation cleanPath];

                    [m_navigation stopGuide];

                }

                NSLog(@"%@",[m_navigation routeAnalyst]);

                if(![m_navigation routeAnalyst])

                {

                    NSLog(@"无相关路径");

                }

                [m_navigation setPathVisible:true];

                [m_mapControl.map refresh];
我们这边先测试看下,然后告知您结果
麻烦了 谢谢

我用你的数据和代码测试了没有出现崩溃的情况,并且分析出了路径

那我这个崩溃可能是因为什么引起的呢  是数据的问题吗
你那边是每次分析都会失败?还是只是某些点会失败?试试这两个点呢(109.48514039999893,36.462639380001569)。(109.51374743999902,36.451608480001568)
每次都会失败
试了这个地址也是崩溃的
我看你的代码进行投影转换了,转换出来的点坐标是经纬度的吗?是不是转换出的问题,我这没有用转换这一段代码,另外你的测试设备是什么设备?我这边使用的是ipadair2
地图是墨卡托的 我经纬度坐标转换成了墨卡托坐标进行路径分析的  测试设备是iPhone XS Max

坐标转换代码

  if ([m_mapControl.map.prjCoordSys type]!= PCST_EARTH_LONGITUDE_LATITUDE)

                {

                    PrjCoordSys *desPrjCoorSys = [[PrjCoordSys alloc]init];

                    [desPrjCoorSys setType:PCST_EARTH_LONGITUDE_LATITUDE];

                    CoordSysTransParameter *param = [[CoordSysTransParameter alloc]init];

                    [CoordSysTranslator convert:point2Ds PrjCoordSys:desPrjCoorSys PrjCoordSys:m_mapControl.map.prjCoordSys CoordSysTransParameter:param CoordSysTransMethod:MTH_GEOCENTRIC_TRANSLATION];

                }

                [m_navigation setStartPoint:[point2Ds getItem:0].x sPointY:[point2Ds getItem:0].y];

                [m_navigation setDestinationPoint:[point2Ds getItem:1].x dPointY:[point2Ds getItem:1].y];
那应该就是坐标的问题了,不能使用墨卡托的坐标进行分析哦,你的网络数据集都是经纬度的,所以输入的分析点必须是经纬度的点。
使用经纬度坐标进行路径分析的时候同样是崩溃的
你用我的代码试试吧,看是否会崩溃,将数据源和snm放到沙箱下就行了

链接:https://pan.baidu.com/s/19I8JShXa3K9OQwEU0Rn2tw
提取码:3v6j
复制这段内容后打开百度网盘手机App,操作更方便哦
路网信息需要添加到图层上面 我之前看demo没有这一步操作  一直造成路径分析崩溃  现在路径分析不会崩溃了 我按照你刚才发的这个坐标信息 做了一下路径分析  一直是无相关路径
不用添加,我添加只是为了看那个分析结果是否正确,你用我的demo分析也是没有路径?
没有路径的
你需要定位下看下,或者挪动地图看下,那个点不在当前视图范围内

我在地图上随意选取了这两个位置 路网信息是有的  传入的坐标点是经纬度坐标  底图坐标是墨卡托坐标  提示的无相关路径

你用我给你那个demo重现下,再把那个demo发回来给我
链接: https://pan.baidu.com/s/1w4w6Nh8XtDFkteefZKAdhg 提取码: rnqr 我把项目所加载的文件 和路网信息和缓存信息都放进去了 rest文件夹是缓存信息  麻烦了 谢谢

我拿你的工程直接运行,是有分析结果的,你用的是我上次发的那个新的SDK包吗?

是的呀  我这就是一直分析不出路径
代码和包都一样,只有设备不一样了,你找个其他的设备试试吧,看是否可以
是不是因为版本的原因我的手机版本是最新的 晚上回去拿iPad试一下 明天再讨论
昨天试了下平板 安装上也是没有路径的
链接:https://pan.baidu.com/s/1HhwI8rv5ivo8EeiQYqfQVA  密码:kwe7 我把项目压缩了 你看下哪里出问题了    地图在viewController里面  新版的正在下载中
下载了新版的 添加进去依然是没有路径  一脸懵圈
看了你的代码,是你分析的时候用的导航m_navigation是全局变量,但是为nil,load环境用了另外一个私有的m_navigation,你加载环境和导航用一个m_navigation就能分析出结果了。
看到了 谢谢  谢谢
...