[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[udig-devel] MapGraphics and Layer
|
In one of the more recent 1.1.x releases, my code broke. I'm creating a
layer with a MapGraphic, but now I'm not able to create that layer. The
code looks like this... (it falls out on the assert about halfway down)
public void createGpsLayer() {
Map map = ApplicationGISInternal.getActiveMap();
try {
IGeoResource gpsDataResource = null;
URL url = new URL(MapGraphicService.SERVICE_URL, "#" +
GpsMapGraphic.ID); //$NON-NLS-1$
List<IResolve> matches =
CatalogPlugin.getDefault().getLocalCatalog().find(url,
new NullProgressMonitor());
if (!matches.isEmpty())
gpsDataResource = (IGeoResource) matches.get(0);
if (gpsDataResource == null) {
List<IService> results =
CatalogPlugin.getDefault().getServiceFactory()
.acquire(url);
for (IGeoResource resource : results.get(0).members(new
NullProgressMonitor())) {
if
(resource.getIdentifier().getRef().equals(url.getRef())) {
gpsDataResource = resource;
break;
}
}
}
assert null != gpsDataResource : "Somethig is wrong" // it falls
our here...
_gpsLayer = map.getLayerFactory().createLayer(gpsDataResource);
_gpsLayer.setName(LAYER_NAME);
_gpsLayer.setSelectable(true);
int top = map.getMapLayers().size();
map.sendCommandSync(BasicCommandFactory.getInstance().createAddLayer(_gpsLayer,
top));
_mapGraphic = _gpsLayer.getResource(GpsMapGraphic.class, null);
Activator.getDefault().getModel().addEventCollectionListener(_mapGraphic);
startRefresher();
} catch (MalformedURLException e) {
AppLogger.log(e);
} catch (IOException e) {
AppLogger.log(e);
}
}
Help appreciated...