首页 / 浏览问题 / 移动GIS / 问题详情
如何 addTileSource
1EXP 2018年04月06日
使用产品:iclient 8c for ios

问题详细描述:

我要实现的效果是在wms图层上显示路网及中文标注

实现过程是 用RMWMSSource 创建的RMMapContents ,然后添加天地图SMTianDiTuTileSource

结果 程序抛异常

代码如下

sm_wms = [[RMWMS alloc] init];

    [sm_wms setCrs:@"EPSG:3857"];

    [sm_wms setService:@"WMS"];

    sm_wms.queryable = TRUE ;

    [sm_wms setUrlPrefix:@"http://tile1.1010earth.com:9292/map/jixi/wms"];

    [sm_wms setLayers:@"mi_mc-pl-5m-20170701_20170730-jixi-am-0public,heilongjiang:mt_mc-farmland_change-20160701_20170730-jixi-p-0public"];

sm_wmsSource = [[RMWMSSource alloc] init];

[sm_wmsSource setWms:sm_wms];

 sm_mapContents = [[RMMapContents alloc] initWithView:sm_mapView tilesource:sm_wmsSource];

 self.tianditu = [[SMTianDiTuTileSource alloc] init];

[sm_mapContents addTileSource:tianditu];

程序抛异常

1个回答

[sm_mapContents addTileSource:tianditu];这个里面加载的时候,有一个重载,能够指定添加图层的index,需要指定添加图层的索引号, [sm_mapContents addTileSource:tianditu atIndex:1];
1,742EXP 2018年04月08日

非常感谢您的回答

按照您说的已经改成调用 addTileSource atindex方法

但应用加载后无反应,没有任何的交互(点击任何ui上的按钮都无反应),log中出现的日志为

2018-04-08 14:04:09.323889+0800 TripBigData[8981:590798] [logging] duplicate column name: zInserted

2018-04-08 14:04:09.324390+0800 TripBigData[8981:590798] Added the tilesource 'tianditu' to the container

如果您方便可以加我的qq ( 181912101 ),我可以把相关代码发您看下。

你需要看下两个图层的坐标系是否是一致的,如果不一致,就不能叠加,例如一个图层是经纬度,一个是投影坐标系
再次感谢

我的wms layer是墨卡托坐标,我看SMTianDiTuTileSource里是vec_c

SMTianDiTuTileSource源码

url = @"http://t2.tianditu.com/DataServer?T=vec_c";

这两个能叠加么?

我又尝试了一下中文标注,就是重写了SMTianDiTu_cva_c_TileSource 这个类

里面改成了 cia_w,但也没成功

-(NSString *) tileURL: (RMTile) tile

{

    ///天地图url

    url = @"http://t2.tianditu.com/DataServer?T=cia_w";//cva_c  vec_c

    NSString* strUrl;

    strUrl = [NSString stringWithFormat:@"%@&X=%d&Y=%d&L=%d",url,tile.x,tile.y,(int)tile.zoom+1];

    return strUrl;

}

墨卡托能跟 vec_c   或 。cia_w  叠加么?
你那单独那个wms可以打开吗
另外我看见你的wms服务是WGS84的
可以打开
那个单独的wms可以打开,单独的天地图也能打开,就是想放到一个content里不行

wgs84会有什么影响不,这个应该是服务端那边发布时选的吧,客户端这边到没看到怎么处理这个
WGS84和天地图的数据叠加不上,数据范围不一样

好的,那我再跟服务器那边确认下,看看这个 WGS84 是怎么定的

另外,您是怎么看出来是WGS84的呢,我对地图不太了解,只是在地图上画线的时候说要把经纬度转成墨卡托,所以我认为服务器的坐标系是墨卡托。

还有一点是,现在web端,就是js那边 是可以把现在的wms图层和天地图结合的,ios端是不是也理应有办法实现。


...