[Marble-devel] Drawing a box on the map
Konrad Enzensberger
e.konrad at mpegcode.com
Thu Feb 16 13:36:42 UTC 2012
Hi,
i have build my own plugin for drawing each kind of
polygone over the map, unfortunately, it is not opensource.
but see the osmannotate plugin, this it a good starting point.
The plugin handles how to draw a polygone over the map,
check eventFilter:(...) methode and m_drawingPolygone member .
for storing the polygone permanently (and moving,modifying,...) i also suggest to create your own layer,
it is not hard to do,
regards, konrad
-
----- Original Message -----
From: Kyle Shannon
To: Dennis Nienhüser
Cc: marble-devel at kde.org
Sent: Tuesday, February 14, 2012 11:51 PM
Subject: Re: [Marble-devel] Drawing a box on the map
Thanks Dennis,
Is there a hard way that is more proper, or is reimplementing the input handler proper? Also addGeoDataString doesn't have much for documentation. Does it take a kml? I am getting a seg fault with a string (generated from the selection):
<Placemark>
<LinearRing>
<extrude>0</extrude>
<tessellate>0</tessellate>
<altitudeMode>clampToGround</altitudeMode>
<coordinates>
-114.804200,47.627658,0.0
-112.560859,47.627658,0.0
-112.560859,46.053973,0.0
-114.804200,46.053973,0.0
-114.804200,47.627658,0.0
</coordinates>
</LinearRing>
</Placemark>
Which loads into google earth without error. Is there anywhere else to look, or should I just go straight to the code?
kss
/**
*
* Kyle Shannon
* ksshannon at gmail.com
*
*/
On Tue, Feb 14, 2012 at 14:22, Dennis Nienhüser <earthwings at gentoo.org> wrote:
Hi Kyle,
an easy way (hack) would be to use the selection rubber band Marble uses
when you hold Ctrl and do the interaction you describe. You can access
that rectangle via the MarbleWidget::regionSelected(QList<double>)
signal. The list contains the border points (west, north, east, south,
in degree). To make it persistent, add your own layer as described in
the tutorials and have it paint the rectangle. Alternatively, create a
suitable .kml file with the rectangle, style it and add it to the map
via MarbleWidget::model()->addGeoDataString() or addGeoDataFile().
You can also add another event filter on the widget and handle the user
actions similarly to how MarbleWidgetDefaultInputHandler implements the
rubber band selection.
Regards,
Dennis
On 14.02.2012 21:42, Kyle Shannon wrote:
> Hello,
> I was wondering if it is possible to have the user draw a box on the
> map in marblewidget.
>
> 1) User clicks a point.
> 2) User drags the mouse to another point.
>
> The two points define a rectangle. I would like the drawing to be
> updated as well as the user drags the mouse. I checked the tutorials,
> and the GeoPainter examples are all pretty static. My question is
> where do I start? Do I need to look into Qt api stuff or somewhere in
> the marble api. I thought I found somenting in the digikam source,
> but it didn't seem like what I was looking for. I am using the QTONLY
> build.
>
> kss
>
> /**
> *
> * Kyle Shannon
> * ksshannon at gmail.com <mailto:ksshannon at gmail.com>
> *
> */
>
>
>
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel
_______________________________________________
Marble-devel mailing list
Marble-devel at kde.org
https://mail.kde.org/mailman/listinfo/marble-devel
------------------------------------------------------------------------------
_______________________________________________
Marble-devel mailing list
Marble-devel at kde.org
https://mail.kde.org/mailman/listinfo/marble-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20120216/b0f0f607/attachment.html>
More information about the Marble-devel
mailing list