[Qgis-developer] Extending QgsMapToolIdentify and
ersts at amnh.org
Fri Jan 26 16:40:46 EST 2007
For the most part the results that are displayed now are sufficient but
here is a list of things that could be useful
All Results to include:
Map coordinate (projected)
Map coordinate (geographic)
Display coordinates, i.e., X,Y within the display (lower priority)
Feature ID + all associated attributes (table values)
length or area of feature if not already in table (lower priority)
Pixel values (all bands)
Pixel count (for classified/categorical data)
For simplicity the result set could include more meta-data type
information about the layer, but that is not necessarily needed as that
information is readily available using QgsInterface::getActiveLayer().
For the actual storage of the results an xml document would be robust,
but could add a little overhead. Or, for everything but the vector
feature attributes and the pixel values, a simple struct could be used.
Vector feature and Pixel values could be a QList of another struct that
is just an attribute name and value, so for raster it would be
attribute=Band1 value=50 etc.
Anyway, thanks for thinking about this. I know there are a lot of other
things to do but I think this would be a useful modification that would,
for example, allow a plugin to respond differently to points based on a
particular attribute i.e., loading an external file (path/url in
attribute) with the correct application (depending the file type stored
in another attribute).
Martin Dobias wrote:
> Hi Peter,
> your idea sounds good for me. But could you explain how should
> QgsIdentifyResult object look like? I mean what will be its contents
> for vector/raster layers - e.g. only feature ID (for vector layers)
> and cell coordinate (for raster layers) or whether it will contain
> also more information etc.
> On 1/26/07, Peter Ersts <ersts at amnh.org> wrote:
>> Dear Developers,
>> I was wonder if it would be possible to disassociate the
>> QgsIdentifyResults from a QWidget? My suggestions is to make
>> QgsIdentifyResults a more generic object. This would allow for any class
>> (or plugin) to implement QgsMapToolIdentify. The QgsMapToolIdentify
>> mouse event would simply return a QgsIdentifyResult object that could
>> then be displayed by the user or used to obtain attributes for the
>> feature or pixel at the screen/map coordinates.
>> For example, I have been working on some modifications to the
>> QgsRasterLayer and QgsRasterLayerProperties classes (and gui) to allow
>> for basic stretching and multiple user defined transparency values. One
>> of the feature that was suggested was to have a "Identify Features" like
>> tool to populate the transparency tables. In this example, the user
>> would press a button "Add Values From Display" which I would like to
>> launch a QgsMapToolIdentify like feature, but return the results as a
>> simple object to QgsRasterLayerProperties. QgsRasterLayerProperties
>> would then use the results to populate a table in gui rather than simply
>> display the pixel values in another dialog.
>> This would also allow users to inherit and extend the functionality of
>> QgsMapToolIdentify. It seems like it should not be to difficult, but I
>> may be missing something here.
Peter J. Ersts, Project Specialist
American Museum of Natural History
Center for Biodiversity and Conservation
Central Park West at 79th Street
New York, New York 10024
Tel: (212)-496-3488 or (212)-769-5742
Fax: (212)-313-7295 or (212)-769-5292
Visit the Indo-South Atlantic Consortium on Humpback Whales
More information about the Qgis-developer