「The Vector Properties Dialog:Actions Tab」の版間の差分

提供: OSGeo.JP Wiki
移動: 案内検索
(ページの作成: <H3> Actions Tab </H3> <P> QGIS provides the ability to perform an action based on the attributes of a feature. This can be used to perform any number of actions, for example, r…)
 
(ページの置換: '--~~~~このページは削除予定です。')
 
行1: 行1:
<H3>
+
--[[利用者:Sanak|Sanak]] 2009年10月4日 () 08:10 (UTC)このページは削除予定です。
Actions Tab
+
</H3>
+
 
+
<P>
+
QGIS provides the ability to perform an action based on the attributes of a
+
feature. This can be used to perform any number of actions, for example,
+
running a program with arguments built from the attributes of a feature or
+
passing parameters to a web reporting tool.
+
 
+
<P>
+
Actions are useful when you frequently want to run an external application or
+
view a web page based on one or more values in your vector layer. An example
+
is performing a search based on an attribute value. This concept is used in
+
the following discussion.
+
 
+
<P>
+
Defining Actions<A NAME="410"></A>
+
 
+
<P>
+
Attribute actions are defined from the vector Layer Properties dialog. To
+
define an action, open the vector Layer Properties dialog and click on the
+
Actions tab. Provide a descriptive name for the action. The action
+
itself must contain the name of the application that will be executed when the
+
action is invoked. You can add one or more attribute field values as arguments
+
to the application. When the action is invoked any set of characters that
+
start with a % followed by the name of a field will be replaced by the value of
+
that field. The special characters %% <A NAME="414"></A>will be replaced by the value
+
of the field that was selected from the identify results or attribute table (see
+
Using Actions below).  Double quote marks can be used to group text into a
+
single argument to the program, script or command. Double quotes will be
+
ignored if preceded by a backslash.
+
 
+
<P>
+
If you have field names that are substrings of other field names (e.g., col1
+
and col10) you should
+
indicate so, by surrounding the field name (and the % character) with square
+
brackets (e.g., [%col10]). This will prevent the %col10 field
+
name being mistaken for the %col1 field name with a 0
+
on the end. The brackets will be removed by QGIS when it substitutes in the
+
value of the field. If you want the substituted field to be surrounded by square
+
brackets, use a second set like this: [[%col10]].
+
 
+
<P>
+
The Identify Results dialog box includes a <EM>(Derived)</EM> item that
+
contains information relevant to the layer type. The
+
values in this item can be accessed in a similar way to the other fields
+
by using preceeding the derived field name by (Derived).. For
+
example, a point layer has an X and Y field and the
+
value of these can be used in the action with %(Derived).X and
+
%(Derived).Y. The derived attributes are only available from the
+
Identify Results dialog box, not the Attribute Table dialog box.
+
 
+
<P>
+
Two example actions are shown below:<A NAME="431"></A>
+
 
+
<P>
+
 
+
<UL>
+
<LI>konqueror http://www.google.com/search?q=%nam
+
</LI>
+
<LI>konqueror http://www.google.com/search?q=%%
+
</LI>
+
</UL>
+
 
+
<P>
+
In the first example, the web browser konqueror is invoked and passed a URL to
+
open. The URL performs a Google search on the value of the nam field
+
from our vector layer. Note that the application or script called by the
+
action must be in the path or you must provided the full path. To be sure, we could
+
rewrite the first example as: /opt/kde3/bin/konqueror
+
http://www.google.com/search?q=%nam. This will ensure that the konqueror
+
application will be executed when the action is invoked.
+
 
+
<P>
+
The second example uses the %% notation which does not rely on a particular
+
field for its value. When the action is invoked, the %% will be replaced by
+
the value of the selected field in the identify results or attribute table.
+
 
+
<P>
+
Using Actions<A NAME="439"></A><A NAME="label_usingactions"></A>Actions can be invoked from either the Identify Results dialog or an
+
Attribute Table dialog.
+
(Recall that these dialogs can be opened by clicking
+
mActionOpenTableIdentify Features
+
or
+
mActionOpenTableOpen Table.)
+
To invoke an action,
+
right click on the
+
record and choose the action from the popup menu. Actions are listed in the popup
+
menu by the name you assigned when defining the actions. Click on the action you
+
wish to invoke.
+
 
+
<P>
+
If you are invoking an action that uses the %% notation, right-click on the
+
field value in the Identify Results dialog or the
+
Attribute Table dialog that you wish to pass to the application or script.
+
 
+
<P>
+
Here is another example that pulls data out of a vector layer and inserts them
+
into a file using bash and the echo command (so it will only work
+
or perhaps ). The layer in question has fields for a species name
+
taxon_name, latitude lat and longitude
+
long. I would like to be able to
+
make a spatial selection of a localities and export these field values to a
+
text file for the selected record (shown in yellow in the QGIS map area). Here is
+
the action to achieve this:
+
 
+
<P>
+
<PRE>
+
  bash -c "echo \"%taxon_name %lat %long\" &gt;&gt; /tmp/species_localities.txt"
+
</PRE>
+
 
+
<P>
+
After selecting a few localities and running the action on each one, opening
+
the output file will show something like this:
+
 
+
<P>
+
<PRE>
+
  Acacia mearnsii -34.0800000000 150.0800000000
+
  Acacia mearnsii -34.9000000000 150.1200000000
+
  Acacia mearnsii -35.2200000000 149.9300000000
+
  Acacia mearnsii -32.2700000000 150.4100000000
+
</PRE>
+
 
+
<P>
+
As an exercise we create an action that does a Google search on the
+
lakes layer. First we need to determine the URL needed to perform a search on a
+
keyword. This is easily done by just going to Google and doing a simple
+
search, then grabbing the URL from the address bar in your browser. From this
+
little effort we see that the format is: <TT><A NAME="tex2html72"
+
  HREF="http://google.com/search?q=qgis">http://google.com/search?q=qgis</A></TT>,
+
where qgis is the search term. Armed with this information, we can
+
proceed:
+
 
+
<P>
+
 
+
<OL>
+
<LI>Make sure the lakes layer is loaded.
+
</LI>
+
<LI>Open the Layer Properties dialog by double-clicking on the layer in the
+
  legend or right-click and choose Properties from the popup menu.
+
</LI>
+
<LI>Click on the Actions tab.
+
</LI>
+
<LI>Enter a name for the action, for example Google Search.
+
</LI>
+
<LI>For the action, we need to provide the name of the external program to
+
  run. In this case, we can use Firefox. If the program is not in
+
  your path, you need to provide the full path.
+
</LI>
+
<LI>Following the name of the external application, add the URL used for
+
  doing a Google search, up to but not included the search term:
+
  <TT><A NAME="tex2html73"
+
  HREF="http://google.com/search?q=">http://google.com/search?q=</A></TT>
+
</LI>
+
<LI>The text in the Action field should now look like this:
+
<BR>
+
firefox <TT><A NAME="tex2html74"
+
  HREF="http://google.com/search?q=">http://google.com/search?q=</A></TT>
+
</LI>
+
<LI>Click on the drop-down box containing the field names for the
+
  lakes layer. It's located just to the left of the
+
  Insert Field button.
+
</LI>
+
<LI>From the drop-down box, select NAMES and click Insert Field.
+
</LI>
+
<LI>Your action text now looks like this:
+
<BR>
+
firefox
+
  <TT><A NAME="tex2html75"
+
  HREF="http://google.com/search?q=%NAMES">http://google.com/search?q=%NAMES</A></TT>
+
</LI>
+
<LI>Fo finalize the action click the Insert action button.
+
</LI>
+
</OL>
+
 
+
<P>
+
This completes the action and it is ready to use. The final text of the action
+
should look like this:
+
 
+
<P>
+
<DIV ALIGN="CENTER">
+
firefox <TT><A NAME="tex2html76"
+
  HREF="http://google.com/search?q=%NAMES">http://google.com/search?q=%NAMES</A></TT>
+
 
+
</DIV>
+
 
+
<P>
+
We can now use the action. Close the Layer Properties dialog and zoom in to an area
+
of interest. Make sure the lakes layer is active and identify a
+
lake. In the result box you'll now see that our action is visible:
+
 
+
<P>
+
 
+
<DIV ALIGN="CENTER"><A NAME="fig:identify_action"></A><A NAME="484"></A>
+
<TABLE>
+
<CAPTION ALIGN="BOTTOM"><STRONG>Figure:</STRONG>
+
Select feature and choose action </CAPTION>
+
<TR><TD>
+
<DIV ALIGN="CENTER">
+
</DIV>
+
<P></P>
+
<DIV ALIGN="CENTER">  [clip=true, width=8cm]action_identifyaction
+
 
+
</DIV></TD></TR>
+
</TABLE>
+
</DIV>
+
 
+
<P>
+
When we click on the action, it brings up Firefox and navigates to the URL http://www.google.com/search?q=Tustumena . It is also possible to add further
+
attribute fields to the action. Therefore you can add a ``+'' to the end of the action
+
text, select another field and click on Insert Field. In this example there
+
is just no other field available that would make sense to search for.
+
 
+
<P>
+
You can define multiple actions for a layer and each will show up in the
+
Identify Results dialog. You can also invoke actions from the attribute table
+
by selecting a row and right-clicking, then choosing the action from the popup
+
menu.
+
 
+
<P>
+
You can think of all kinds of uses for actions. For example, if you have a point layer
+
containing locations of images or photos along with a file name, you could
+
create an action to launch a viewer to display the image. You could also use
+
actions to launch web-based reports for an attribute field or combination of
+
fields, specifying them in the same way we did in our Google search example.
+

2009年10月4日 (日) 17:10時点における最新版

--Sanak 2009年10月4日 (日) 08:10 (UTC)このページは削除予定です。