Archiv

Artikel Tagged ‘arcgismobile’

MapCache.GetRasterDataAsync vertauscht Skalierungsfaktoren [9.2]

18. Januar 2010 Keine Kommentare

Seit Tagen bin ich schon auf der Suche nach dem Fehler, endlich hab ich ihn gefunden.
Im Esri ArcGIS mobile ADF 9.2 gibt es die Methode GetRasterDataAsync(Envelope,Double,Double,Boolean,Object,CacheLayer[]) in der Klasse MapCache.

Laut Beschreibung möchte diese zwei Skalierungsparameter haben, zuerst den MinScale und dann den MaxScale. Genauer wird hier (leider) nicht darauf eingegangen, was diese machen und was gültige Parameter sind.

Fakt ist zunächst Mal – das muß man aber auch erstmal wissen – daß hier beispielsweise ein Wert von 5000.0 einem Faktor von 1:5000 entspricht.

Soweit noch nicht ungewöhnlich. Doch nun wirds interessant.
Ich begann also mit einem Download wie folgt:

//Download Raster
 Request[] lRasterRequests =
 lMapCache.GetRasterDataAsync(lMapCache.GetFullExtent().GetEnvelope(), 10000, 100000, false, null);

Download startet, ich bekomm eine Datei mit mehreren 100 MB. Diese kann ich laden und einbinden, ich sehe eine Rasterkarte.
Leider aber nur unterhalb des Skalierungsfaktors! Zoom ich weiter raus als auf 1:10000 (plus ein paar Zerquetschte), dann verschwindet die Rasterkarte und ich hab nur noch einen weißen Hintergrund.

Also hab ich in verzweifelter Suche einfach mal die beiden Paramter MinScale und MaxScale vertauscht:

//Download Raster
 Request[] lRasterRequests =
 lMapCache.GetRasterDataAsync(lMapCache.GetFullExtent().GetEnvelope(), 100000, 10000, false, null);
 

Und Überraschung: Die MapCache Datei wird gleich mal 1/3 größer und enthält nun die verschiedenen Pyramidenstufen.

Fazit:
Hätte man bei ESRI Inc. ein paar Beispiele angegeben, wie man sich die Implementierung vorstellt, so hätte man sich hier sehr viel Zeit sparen können!

KategorienAllgemein Tags: