我正在研究使用AGSRuntime Environment API for iOS的iOS应用程序,通过名为" proxy.ashx"的.Net代理加载地图图层(动态和要素图层)。 。如以下代码行所示:
NSString *MAPServiceURL = @"https://myDomain/sourceCodePath/proxy.ashx?http://my_ArcGis_Server/arcgis/rest/services/MapService/MapServer/"
NSString *FeatureLayerURL = @"https://myDomain/sourceCodePath/proxy.ashx?http://my_ArcGis_Server/arcgis/rest/services/MapService/MapServer/0"
self.dynamicLayer = [AGSDynamicMapServiceLayer dynamicMapServiceLayerWithURL:[NSURL URLWithString:MAPServiceURL]];
self.featureLayer = [[AGSFeatureLayer alloc] initWithURL:[NSURL URLWithString:FeatureLayerURL] mode:AGSFeatureLayerModeSnapshot];
我的问题是动态图层没有出现。并且在iOS应用程序端没有发生错误。
在proxy.ashx端,它重定向请求并将响应(OK 200)作为HTML页面返回。
注意:在Web应用程序中成功加载的相同地图使用AGSRuntime Environment API for JavaScript,通过相同的" proxy.ashx"。
那么,我的错误是什么?
答案 0 :(得分:0)
我发现当POST中的应用请求时,NSURLConnection
会从URL中移除不需要的参数(?
之后的所有内容,因为它是GET参数)。因此,您可以尝试设置不带代理URL的地图服务URL。
NSString *mapServiceURL = @"http://my_ArcGis_Server/arcgis/rest/services/MapService/MapServer/";
如果您不想将ArcGIS服务器设置为公共域,则可以使用ArcGIS Web Adaptor对Intranet ArcGIS服务器进行公共访问。