POST
|
Looks like this is a problem with the Android version of the library after all. The following code works nicely on WinPhone:
ArcGISTiledMapServiceLayer*BaseMap = new ArcGISTiledMapServiceLayer();
BaseMap.Url = "http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer";
BaseMap.ID = "BaseMap";
MyMap.Layers.Add(BaseMap);
ArcGISDynamicMapServiceLayer Objects = new ArcGISDynamicMapServiceLayer();
Objects.ID = "Objects";
Objects.Visible = true;
Objects.Url = "http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer";
MyMap.Layers.Add(Objects);
((ArcGISDynamicMapServiceLayer)MyMap.Layers["Objects"]).VisibleLayers = new int[]{65};
((ArcGISDynamicMapServiceLayer)MyMap.Layers["Objects"]).Refresh();
The following code also works on iOS:
AGSTiledMapServiceLayer *baseMoscowLayer = [[[AGSTiledMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kBaseMoscowLayerUrlString]] autorelease];
UIView<AGSLayerView> *baseMoscowLayerView = [self.mapView addMapLayer:baseMoscowLayer withName:kBaseMoscowLayerName];
baseMoscowLayerView.drawDuringPanning = YES;
baseMoscowLayerView.drawDuringZooming = YES;
AGSDynamicMapServiceLayer *objectsLayer = [[[AGSDynamicMapServiceLayer alloc] initWithURL:[NSURL URLWithString:kObjectsLayerUrlString]] autorelease];
objectsLayer.visibleLayers = [NSArray arrayWithObjects:[NSNumber numberWithInt:65], nil];
objectsLayer.layerDefinitions = self.parkingsDefinitions;
[self.mapView addMapLayer:objectsLayer withName:kObjectsLayerName];
Both those code snippets show museums objects on the map on WinPhone and iOS. However the exact same code for Android ends up with the exception:
E/ArcGIS *(27953): ImageCallback.onError
E/ArcGIS *(27953): com.esri.core.io.EsriServiceException: Not Found
E/ArcGIS *(27953): * *at com.esri.core.internal.b.a.b.a(Unknown Source)
E/ArcGIS *(27953): * *at com.esri.core.internal.b.a.a.a(Unknown Source)
E/ArcGIS *(27953): * *at com.esri.core.internal.a.a.g.b(Unknown Source)
E/ArcGIS *(27953): * *at com.esri.android.map.ags.ArcGISDynamicMapServiceLayer.getImage(Unknown Source)
E/ArcGIS *(27953): * *at com.esri.android.map.DynamicLayer$1.run(Unknown Source)
E/ArcGIS *(27953): * *at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
E/ArcGIS *(27953): * *at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/ArcGIS *(27953): * *at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/ArcGIS *(27953): * *at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/ArcGIS *(27953): * *at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/ArcGIS *(27953): * *at java.lang.Thread.run(Thread.java:1096)
and no museums are shown even though I'm seeing GET requests in sniffer like those:
GET http://31.13.60.167/ArcGIS/rest/services/EA/Objects_map/MapServer/export?f=image&bbox=4150239.66999977%2C7454656.409465957%2C4231797.947144982%2C7558388.343210025&bboxSR=102100&size=320%2C407&format=png&transparent=true&dpi=159&imageSR=102100&layers=hide%3A1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%2C14%2C15%2C16%2C17%2C18%2C19%2C20%2C21%2C22%2C23%2C24%2C25%2C27%2C28%2C29%2C30%2C31%2C32%2C33%2C34%2C35%2C36%2C37%2C38%2C40%2C41%2C42%2C43%2C44%2C45%2C46%2C47%2C48%2C49%2C50%2C51%2C53%2C54%2C55%2C56%2C57%2C58%2C59%2C60%2C61%2C62%2C63%2C64%2C66%2C67%2C68%2C69%2C70%2C71%2C72%2C73%2C74%2C75%2C76%2C77%2C79%2C80%2C81%2C82%2C83%2C84%2C85%2C86%2C87%2C88%2C89%2C90%2C92%2C93%2C94%2C95%2C96%2C97%2C98%2C99%2C100%2C101%2C102%2C103%2C105%2C106%2C107%2C108%2C109%2C110%2C111%2C112%2C113%2C114%2C115%2C116%2C118%2C119%2C120%2C121%2C122%2C123%2C124%2C125%2C126%2C127%2C128%2C129%2C131%2C132%2C133%2C134%2C135%2C136%2C137%2C138%2C139%2C140%2C141%2C142%2C144%2C145%2C146%2C147%2C148%2C149%2C150%2C151%2C152%2C153%2C154%2C155%2C157%2C158%2C159%2C160%2C161%2C162%2C163%2C164%2C165%2C166%2C167%2C168%2C170%2C171%2C172%2C173%2C174%2C175%2C176%2C177%2C178%2C179%2C180%2C181%2C183%2C184%2C185%2C186%2C187%2C188%2C189%2C190%2C191%2C192%2C193%2C194%2C196%2C197%2C198%2C199%2C200%2C201%2C202%2C203%2C204%2C205%2C206%2C207%2C209%2C210%2C211%2C212%2C213%2C214%2C215%2C216%2C217%2C218%2C219%2C220%2C222%2C223%2C224%2C225%2C226%2C227%2C228%2C229%2C230%2C231%2C232%2C233%2C235%2C236%2C237%2C238%2C239%2C240%2C241%2C242%2C243%2C244%2C245%2C246%2C248%2C249%2C250%2C251%2C252%2C253%2C254%2C255%2C256%2C257%2C258%2C259%2C261%2C262%2C263%2C264%2C265%2C266%2C267%2C268%2C269%2C270%2C271%2C272%2C274%2C275%2C276%2C277%2C278%2C279%2C280%2C281%2C282%2C283%2C284%2C285%2C287%2C288%2C289%2C290%2C291%2C292%2C293%2C294%2C295%2C296%2C297%2C298%2C300%2C301%2C302%2C303%2C304%2C305%2C306%2C307%2C308%2C309%2C310%2C311%2C313%2C314%2C315%2C316%2C317%2C318%2C319%2C320%2C321%2C322%2C323%2C324%2C326%2C327%2C328%2C329%2C330%2C331%2C332%2C333%2C334%2C335%2C336%2C337%2C339%2C340%2C341%2C34
so the images from the layer are downloaded on the phone but not shown. I've decompiled the ArcGIS library but it is hard to understand something from the obfuscated code (I cannot find the exact place where com.esri.core.internal.b.a.b.a ends up with en exception). Here are the exact steps to reproduce the problem: install ArcGIS plugin as described here: http://help.arcgis.com/en/arcgismobile/10.0/apis/android/help/#/Installing_the_SDK/01190000002m000000/ create hello world example as described here: http://help.arcgis.com/en/arcgismobile/10.0/apis/android/help/#/Hello_World_Map/011900000005000000/ change this:
map.addLayer(new ArcGISTiledMapServiceLayer("" +
"http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"));
to this:
ArcGISTiledMapServiceLayer baseMoscowLayer = new ArcGISTiledMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer");
ArcGISDynamicMapServiceLayer objectsLayer = new ArcGISDynamicMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer", new int[] {65});
objectsLayer.setVisible(true);
map.addLayer(baseMoscowLayer);
map.addLayer(objectsLayer);
run effect: no objects shown on map and exceptions in log. Maybe someone having access to the library code (not obfuscated) can tell me where exactly the exception is thrown? I'll appreciate any help.
... View more
07-26-2012
11:15 AM
|
0
|
0
|
671
|
POST
|
This appears to be a problem with the layer, since after checking iOS and WP7 code doesn't work either, so this is not a problem with the library.
... View more
07-21-2012
11:33 AM
|
0
|
0
|
671
|
POST
|
Hi, I'm using ArcGIS to add two dynamic layer (one for the world map and yet another for Moscow, Russia). Then I have a dynamic layer with objects (like restaurants and such) for Moscow which I also add:
_baseWorldLayer = new ArcGISTiledMapServiceLayer( "http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer");
_baseMoscowLayer = new ArcGISTiledMapServiceLayer( "http://atlas.mos.ru/ArcGIS/rest/services/EA/EA_Basemap/MapServer");
_objectsLayer = new ArcGISDynamicMapServiceLayer("http://atlas.mos.ru/ArcGIS/rest/services/EA/Objects_map/MapServer");
_mapView.addLayer(_baseWorldLayer);
_mapView.addLayer(_baseMoscowLayer);
_mapView.addLayer(_objectsLayer);
I then zoom to moscow: public static final Location MOSCOW_LOCATION = new Location(55.752962D, 37.623196D);
_mapView.setOnStatusChangedListener(new OnStatusChangedListener() {
@Override
public void onStatusChanged(Object source, STATUS status) {
if (OnStatusChangedListener.STATUS.INITIALIZED == status && source == _mapView) {
// Show Moscow region on start
// TODO: what is scale parameter?
_mapView.zoomToScale(new Point(Constants.MOSCOW_LOCATION.longitude(),
Constants.MOSCOW_LOCATION.latitude()),
0.2f);
}
}
});
Now scrolling through the map I see a lot of:
E/ArcGIS (12117): ImageCallback.onError
E/ArcGIS (12117): com.esri.core.io.EsriServiceException: Not Found
E/ArcGIS (12117): at com.esri.core.internal.b.a.b.a(Unknown Source)
E/ArcGIS (12117): at com.esri.core.internal.b.a.a.a(Unknown Source)
E/ArcGIS (12117): at com.esri.core.internal.a.a.g.b(Unknown Source)
E/ArcGIS (12117): at com.esri.android.map.ags.ArcGISDynamicMapServiceLayer.getImage(Unknown Source)
E/ArcGIS (12117): at com.esri.android.map.DynamicLayer$1.run(Unknown Source)
E/ArcGIS (12117): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
E/ArcGIS (12117): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/ArcGIS (12117): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/ArcGIS (12117): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/ArcGIS (12117): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/ArcGIS (12117): at java.lang.Thread.run(Thread.java:1096)
and also no images in the objects layer are shown. Why can this happen? Same exactly code for the iOS does the thing..
... View more
07-20-2012
01:52 AM
|
0
|
7
|
7749
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|