iOS 打开 WMS 服务地图不显示

0 投票

你好:

我这边用模拟器打开 wms 服务,打开地图是显示的,但是底图需要设置中心点,和比例尺。打开后屏幕是白色的不显示

在打开 wms 服务时候,如果设置  [connInfo setWebVersion:@"1.1.1"]; app 会崩溃,奔溃信息是:

 Terminating app due to uncaught exception 'Layers', reason: 'dataset is nil'

*** First throw call stack:

(

    0   CoreFoundation                      0x0a495bf2 __exceptionPreprocess + 194

    1   libobjc.A.dylib                     0x0993de66 objc_exception_throw + 52

    2   Map                                 0x0012c699 -[Layers addDataset:ToHead:] + 1065

    3   Map                                 0x000982b3 -[ViewController loadWMSServer] + 947

    4   Map                                 0x000936ef -[ViewController viewDidAppear:] + 79

    5   UIKit                               0x060f9584 -[UIViewController _setViewAppearState:isAnimating:] + 955

    6   UIKit                               0x060f9d19 -[UIViewController __viewDidAppear:] + 156

    7   UIKit                               0x060fc785 __64-[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:]_block_invoke + 57

    8   UIKit                               0x060fa769 -[UIViewController _executeAfterAppearanceBlock] + 91

    9   UIKit                               0x05f332a6 _runAfterCACommitDeferredBlocks + 726

    10  UIKit                               0x05f1d9a2 _cleanUpAfterCAFlushAndRunDeferredBlocks + 624

    11  UIKit                               0x05f44734 __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke_2 + 207

    12  CoreFoundation                      0x0a434e20 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16

    13  CoreFoundation                      0x0a418d4c __CFRunLoopDoBlocks + 348

    14  CoreFoundation                      0x0a418422 __CFRunLoopRun + 1106

    15  CoreFoundation                      0x0a417d5b CFRunLoopRunSpecific + 395

    16  CoreFoundation                      0x0a417bbb CFRunLoopRunInMode + 123

    17  GraphicsServices                    0x0cbd2b4c GSEventRunModal + 177

    18  GraphicsServices                    0x0cbd29c7 GSEventRun + 80

    19  UIKit                               0x05f24ff3 UIApplicationMain + 148

    20  Map                                 0x000b58a9 main + 137

    21  libdyld.dylib                       0x0a9c8799 start + 1

)

libc++abi.dylib: 

(lldb) 

服务器信息,和代码信息,我放在了截图里,谢谢。

3月 15, 2017 分类:  583次浏览 | 用户: xu 初出茅庐 (27 分)

1个回答

0 投票
 
已采纳

您的数据打开,看不见数据应该是范围设置的问题,打开WMS需要设置诸多参数,代码参考:

NSString *dataServer = @"http://demo.boundlessgeo.com/geoserver/wms";
    m_connectonInfo = [[DatasourceConnectionInfo alloc]init];
    [m_connectonInfo setWebVersion:@"1.3.0"];
    [m_connectonInfo setWebFormat:@"image/png"];
    [m_connectonInfo setWebVisibleLayers:@"topp:states"];
    Rectangle2D *rect = [[Rectangle2D alloc]initWith:-2.003750834278E7 bottom:-2.003750834279E7 right:2.003750834278E7 top:2.003750834279E7];
    [m_connectonInfo setWebBBox:rect];
    [m_connectonInfo setWebExtendParam:(@"")];
    [m_connectonInfo setWebCoordinate:@"EPSG:3857"];
    [m_connectonInfo setEngineType:ET_OGC];
    [m_connectonInfo setDriver:@"WMS"];
    [m_connectonInfo setServer:dataServer];
    m_datasource = nil;
    m_datasource = [[m_workspace datasources]open:m_connectonInfo];

3月 15, 2017 用户: 周仕斌 名扬四海 (1,457 分)
采纳于 3月 17, 2017 用户:xu

位置 是按照 信息里设置的呀,

您好,您看能否发一个外网的服务,我们这边测试看下呢?
喔喔,稍等我下,麻烦了
抱歉,没有外网的,我的QQ 是2740408857,要不我吧网页xml 文件发你下,这里有字符限制。
拿xml对测试效果影响不大,您这个服务是iServer发布的吗?是否方便把数据给我我这边发布出来测试?
都是内网的数据,没办法发链接的。

问下,wms 可以在移动端,控制图层的显示和隐藏吗。意思是要加载后再控制,编辑图层的隐藏与否,好像只是看到了 setWebVisibleLayers

看了下,图层没有显示是因为没有设置setWebVisibleLayers或者是设置的不正确,您可以仔细检查下,另外使用WMS服务请关闭OpenGL功能。我这边的测试服务是:http://support.supermap.com.cn:8090/iserver/services/map-china400/wms111/China,您也可以参考下。

嗯嗯,麻烦了。
...