- (void)startWMTSLayerSetUp
{
NSString *wmtsUrl = [[[DataManager sharedInstance] getWMTSInfoUrl] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (!wmtsUrl) return;
self.wmtsInfo = [[AGSWMTSInfo alloc] initWithURL:[NSURL URLWithString:wmtsUrl]];
self.wmtsInfo.delegate = self;
}
- (void)wmtsInfoDidLoad:(AGSWMTSInfo *)wmtsInfo
{
NSArray *layerInfos = [wmtsInfo layerInfos];
for (AGSWMTSLayerInfo *layerInfo in layerInfos) {
self.wmtsLayer = [wmtsInfo wmtsLayerWithLayerInfo:layerInfos[0] andSpatialReference:self.mapView.spatialReference];
self.wmtsLayer.delegate = self;
NSUInteger value = [layerInfos indexOfObjectIdenticalTo:layerInfo];
[self.mapView insertMapLayer:self.wmtsLayer withName:layerInfo.title atIndex:value];
}
}
Here is the url I use https://show.msgis.net/wmts/basemap-WMTSCapabilities.xml
blank map grid view is shown. and delegates say that the layers are loaded .
Same functionality works perfectly fine for this url http://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/1.0.0/WMTSCapabil...
Solved! Go to Solution.
This thread is old, however I would like to share some information that I found about how to load an open source WMTSLayer in ArcGIS Runtime for iOS in Objective-c.
For more information, please check this github sample page that I show how to load the WMTSLayer from an open source.
Read Offline GDB With WMTSLayer as basemap
Hope this can help.
With future research I found that the request URL formed to get the tile data were inappropriate.
Request template: http://maps1.wien.gv.at/basemap/bmaphidpi/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg
/basemap/bmaphidpi/normal/google3857/8/88/134.jpeg (Request URL formed on Android)
/basemap/default/bmaphidpi/google3857/2/2/1.jpeg (Request URL formed on Android)
Also Tried to fix this by SubClassing AGSWMTSLayer , overriding
-(void)requestTileForKey:(AGSTileKey*)key and -(NSURL*)urlForTileKey:(AGSTileKey*)key
where I try to manipulate the URL to replicate the Android Url in turn returning success response , but still the tile data isn't visible.
Any clue on why this happens ?
This thread is old, however I would like to share some information that I found about how to load an open source WMTSLayer in ArcGIS Runtime for iOS in Objective-c.
For more information, please check this github sample page that I show how to load the WMTSLayer from an open source.
Read Offline GDB With WMTSLayer as basemap
Hope this can help.