有个项目需要用到别人发布的arcgis server服务来获取切片
但是他们发布的服务是自定义规则的,lods从4开始一直到20,和ARCGIS自带的不一样,不能用AGSTiledMapServiceLayer这个方法访问他们的切片图层,一使用这个类初始化后直接报错。
需要重写这些服务吗?我下载了arcgis ios访问天地图的demo,但也不知道从哪里改起
或者有没有别的办法可以实现?

解决方案 »

  1.   

    当我执行这句话的时候,
    AGSTiledMapServiceLayer *tiledMap=[[AGSTiledMapServiceLayer alloc]initWithURL:[NSURL URLWithString:tTiledMapServiceURL]];(tTiledMapServiceURL是别人提供给我的服务)
    模拟器不能执行下去,直接闪退。
    他给我提供的JS代码demo是这样的:
    function (Map, TdtQhLayer,ArcGISTiledMapServiceLayer,dom,on,lang,Query,QueryTask,Point) {
                var lods=[
                {"level":4,"resolution":0.087890625,"scale":36937199.132343754},
                {"level":5,"resolution":0.0439453125,"scale":18468599.566171877},
                {"level":6,"resolution":0.02197265625,"scale":9234299.7830859385},
                {"level":7,"resolution":0.010986328125,"scale":4617149.8915429693},
                {"level":8,"resolution":0.0054931640625,"scale":2308574.9457714846},
                {"level":9,"resolution":0.00274658203125,"scale":1154287.4728857423},
                {"level":10,"resolution":0.001373291015625,"scale":577143.73644287116},
                {"level" : 11, "resolution" : 0.0006866455078125, "scale" : 288571.86822143558},
                {"level" : 12, "resolution" : 0.00034332275390625, "scale" : 144285.93411071779},
                {"level" : 13, "resolution" : 0.000171661376953125, "scale" : 72142.967055358895},
                {"level" : 14, "resolution" : 8.58306884765625e-005, "scale" : 36071.483527679447},
                {"level" : 15, "resolution" : 4.291534423828125e-005, "scale" : 18035.741763839724},
                {"level" : 16, "resolution" : 2.1457672119140625e-005, "scale" : 9017.8708819198619},
                {"level" : 17, "resolution" : 1.0728836059570313e-005, "scale" : 4508.9354409599309},
                {"level" : 18, "resolution" : 5.3644180297851563e-006, "scale" : 2254.4677204799655},
                {"level" : 19, "resolution" : 0.000002682209014892578, "scale":1127.2338602399827},
                {"level" : 20, "resolution" : 0.000001341104507446289, "scale":563.6169301199914}];
                var img_layer = new TdtQhLayer("img_c");
                var cia_layer = new TdtQhLayer("cia_c");
                var qhimg_layer15=new ArcGISTiledMapServiceLayer("xxx/xxxx/MapServer",{displayLevels:[14,15,16]});
                var qhcia_layer15=new ArcGISTiledMapServiceLayer("xxx/xxx/xxx/MapServer",{displayLevels:[14,15,16]});
                map = new Map("map",{logo:false,lods:lods});
                map.addLayer(img_layer);
                map.addLayer(cia_layer);
                map.addLayer(qhimg_layer15);
                map.addLayer(qhcia_layer15);其中TdtQhLayer是自定义的天地图类,现在IOS参考写的类也可以读取到天地图
    但是提供的服务,在IOS上读取不了