如何在iOS应用程序中通过proxy.ashx加载Arcgis地图?

时间:2018-02-01 12:32:23

标签: ios dictionary proxy arcgis

我正在研究使用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"。

那么,我的错误是什么?

1 个答案:

答案 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服务器进行公共访问。