Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-14 Thread Bob and Deb
I was mostly interested in seeing qgis having similar grid symbology to
ps.output.
On May 14, 2012 9:51 AM, "Etienne Tourigny"  wrote:

> Hi Bob,
>
> Output looks really nice but I see 2 issues:
>
> 1 - grass is optional, not part of qgis core
> 2 - made for PS output, may not fit nicely with the composer nor the map
> canvas
>
> Perhaps there is a workaround for 2 ?
>
> Etienne
>
> On Mon, May 14, 2012 at 2:47 AM, Bob and Deb  wrote:
> > I wonder if http://grass.osgeo.org/wiki/Ps.output might give good ideas
> for
> > drawing a grid on the map canvas.
> >
> > On Wed, May 9, 2012 at 2:00 PM, Etienne Tourigny <
> etourigny@gmail.com>
> > wrote:
> >>
> >> Hi all,
> >>
> >> I would like to add support to draw a grid on the map canvas, in a way
> >> similar to what is done in the map composer (although perhaps without
> >> the annotations on the borders).
> >>
> >> What should be the approach used?
> >>
> >> 1) plugin or core?
> >> 2) rubberbands or basic plot functions triggered after mapCanvas update?
> >>
> >> I think both drawing strategies are possible using a plugin.
> >>
> >> It would be best to write in the core, assuming there is sufficient
> >> interest in this, but it will take time to trickle down to the stable
> >> version (an argument for making it a plugin).
> >>
> >> I know the current workaround is to create a vector grid with ftools,
> >> but that is a little clunky.
> >>
> >> Any thoughts?
> >> Etienne
> >> ___
> >> Qgis-developer mailing list
> >> Qgis-developer@lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/qgis-developer
> >
> >
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-14 Thread Etienne Tourigny
Hi Bob,

Output looks really nice but I see 2 issues:

1 - grass is optional, not part of qgis core
2 - made for PS output, may not fit nicely with the composer nor the map canvas

Perhaps there is a workaround for 2 ?

Etienne

On Mon, May 14, 2012 at 2:47 AM, Bob and Deb  wrote:
> I wonder if http://grass.osgeo.org/wiki/Ps.output might give good ideas for
> drawing a grid on the map canvas.
>
> On Wed, May 9, 2012 at 2:00 PM, Etienne Tourigny 
> wrote:
>>
>> Hi all,
>>
>> I would like to add support to draw a grid on the map canvas, in a way
>> similar to what is done in the map composer (although perhaps without
>> the annotations on the borders).
>>
>> What should be the approach used?
>>
>> 1) plugin or core?
>> 2) rubberbands or basic plot functions triggered after mapCanvas update?
>>
>> I think both drawing strategies are possible using a plugin.
>>
>> It would be best to write in the core, assuming there is sufficient
>> interest in this, but it will take time to trickle down to the stable
>> version (an argument for making it a plugin).
>>
>> I know the current workaround is to create a vector grid with ftools,
>> but that is a little clunky.
>>
>> Any thoughts?
>> Etienne
>> ___
>> Qgis-developer mailing list
>> Qgis-developer@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-13 Thread Bob and Deb
I wonder if http://grass.osgeo.org/wiki/Ps.output might give good ideas for
drawing a grid on the map canvas.

On Wed, May 9, 2012 at 2:00 PM, Etienne Tourigny wrote:

> Hi all,
>
> I would like to add support to draw a grid on the map canvas, in a way
> similar to what is done in the map composer (although perhaps without
> the annotations on the borders).
>
> What should be the approach used?
>
> 1) plugin or core?
> 2) rubberbands or basic plot functions triggered after mapCanvas update?
>
> I think both drawing strategies are possible using a plugin.
>
> It would be best to write in the core, assuming there is sufficient
> interest in this, but it will take time to trickle down to the stable
> version (an argument for making it a plugin).
>
> I know the current workaround is to create a vector grid with ftools,
> but that is a little clunky.
>
> Any thoughts?
> Etienne
> ___
> Qgis-developer mailing list
> Qgis-developer@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-11 Thread Etienne Tourigny
On Fri, May 11, 2012 at 3:14 AM, Martin Dobias  wrote:
> On Fri, May 11, 2012 at 12:40 AM, Etienne Tourigny
>  wrote:
>>> For me a grid is a good candidate to be implemented as another type of
>>> decoration (currently there is north arrow, scale bar and copyright
>>> label). A decoration is drawn on top of the map when map rendering has
>>> finished. And symbology can still be applied when drawing grid as a
>>> decoration.
>>
>> Hmm... symbology applied to what?
>>
>> Nathan's suggestion to make it a layer to be able to style it makes
>> sense. Any way we can use the symbology interface on a map decoration?
>> Can we re-use existing widgets for this, or just a waste or time
>> instead of designing a new widget?
>
> It is fairly easy to provide a GUI where users would select/modify the
> symbol for drawing grid lines (all necessary widgets are in qgis_gui
> library - QgsSymbolV2SelectorDialog, QgsSymbolV2PropertiesDialog). For
> drawing itself you only have to construct a QgsRenderContext instance
> and issue calls to QgsLineSymbolV2::renderPolyline(...). Before first
> render call make sure to initialize the symbol with startRender() and
> at the end stopRender(). To get screen coordinates from map
> coordinates there is QgsMapToPixel utility class.
>

Thanks Martin, this is great to know.  Existing code (composer grid)
does not seem use this infrastructure.

Would it make sense to create a new qgisgui element (or other class)
to deal with grids, and re-use this code in the composer?
Or perhaps just draw in the composer whatever grid(s) have been
defined by the user in the main canvas?

Are there any documentation/examples on using qgisgui elements, other
than the api?


Regards,
Etienne



> Regards
> Martin
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Martin Dobias
On Fri, May 11, 2012 at 12:40 AM, Etienne Tourigny
 wrote:
>> For me a grid is a good candidate to be implemented as another type of
>> decoration (currently there is north arrow, scale bar and copyright
>> label). A decoration is drawn on top of the map when map rendering has
>> finished. And symbology can still be applied when drawing grid as a
>> decoration.
>
> Hmm... symbology applied to what?
>
> Nathan's suggestion to make it a layer to be able to style it makes
> sense. Any way we can use the symbology interface on a map decoration?
> Can we re-use existing widgets for this, or just a waste or time
> instead of designing a new widget?

It is fairly easy to provide a GUI where users would select/modify the
symbol for drawing grid lines (all necessary widgets are in qgis_gui
library - QgsSymbolV2SelectorDialog, QgsSymbolV2PropertiesDialog). For
drawing itself you only have to construct a QgsRenderContext instance
and issue calls to QgsLineSymbolV2::renderPolyline(...). Before first
render call make sure to initialize the symbol with startRender() and
at the end stopRender(). To get screen coordinates from map
coordinates there is QgsMapToPixel utility class.

Regards
Martin
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Ramon Andiñach
On 11/05/2012, at 8:22, "Alister  Hood"  wrote:

> vector operations on a grid.  And I guess the digitising tools would be 
> disabled for these layers.  But people do treat grids as features for 
> geoprocessing,.
> 
>>> interesting approach might be to use QgsPluginLayer class, but IMHO a
>>> grid is not even a layer... e.g. does it make any sense to draw some
>>> other layers on top of a grid?
> 
> Certainly not usually, at least for printing, although I can imagine using a 
> grid of alternating filled gray and white squares under the map layers, 
> rather than grid lines over the map layers.  
> I can also imagine if someone was working with point and line layers and 
> unfilled polygon styles they might move these layers above the grid to make 
> it easier to see them.  
> Anyway, it would certainly make sense in some cases to have more than one 
> grid "layer", to be able to symbolise them differently (which implies being 
> able to control which one of them is above another) and turn them on and off 
> independently.  Creating them as layers would make this simple.
> 
>> I guess it makes more sense to draw the grid on top - are there any
>> uses to draw the grid below the layers? In any case, a simple
>> (top/bottom) selector would suffice.
> 
> I doubt there are many cases when somebody would want grids below the layers, 
> but I wouldn't rule it out entirely.
> But I do think people would want grids below feature labels and diagrams 
> (other map decorations are above these), and below map annotations (other map 
> decorations are below these, although I think that they probably shouldn't 
> be).

+1

I would definitely want it below labels and annotations at least; and I can 
also easily think of situations where I might want to move it below other 
layers. 

-ramon.___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


RE: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Alister Hood
Hi again,

> On Fri, May 11, 2012 at 10:40 AM, Etienne Tourigny 
 wrote:
> 
> Hi all
> 
> On Thu, May 10, 2012 at 5:39 PM, Martin Dobias  wrote:
> > Hi
> >
> > On Thu, May 10, 2012 at 2:06 PM, Nathan Woodrow  wrote:
> >> I think if QgsPluginLayer is a usable option that would be the way to go, 
> >> or
> >> maybe  QgsVectorLayer  but I suspect that you will need a provider for
> >> that.
> >
> > I would suggest _not_ to create another provider for grids (for use as
> > a vector layer). A grid is not really made of vector features, and
> > lots of vector operations do not make much sense for grid. An

Yes, I think most people would never use vector operations on a grid.  And I 
guess the digitising tools would be disabled for these layers.  But people do 
treat grids as features for geoprocessing,.

> > interesting approach might be to use QgsPluginLayer class, but IMHO a
> > grid is not even a layer... e.g. does it make any sense to draw some
> > other layers on top of a grid?

Certainly not usually, at least for printing, although I can imagine using a 
grid of alternating filled gray and white squares under the map layers, rather 
than grid lines over the map layers.  
I can also imagine if someone was working with point and line layers and 
unfilled polygon styles they might move these layers above the grid to make it 
easier to see them.  
Anyway, it would certainly make sense in some cases to have more than one grid 
"layer", to be able to symbolise them differently (which implies being able to 
control which one of them is above another) and turn them on and off 
independently.  Creating them as layers would make this simple.

> I guess it makes more sense to draw the grid on top - are there any
> uses to draw the grid below the layers? In any case, a simple
> (top/bottom) selector would suffice.

I doubt there are many cases when somebody would want grids below the layers, 
but I wouldn't rule it out entirely.
But I do think people would want grids below feature labels and diagrams (other 
map decorations are above these), and below map annotations (other map 
decorations are below these, although I think that they probably shouldn't be).

> > For me a grid is a good candidate to be implemented as another type of
> > decoration (currently there is north arrow, scale bar and copyright
> > label). A decoration is drawn on top of the map when map rendering has
> > finished. And symbology can still be applied when drawing grid as a
> > decoration.
> 
> Hmm... symbology applied to what?

See below.

> Nathan's suggestion to make it a layer to be able to style it makes
> sense. Any way we can use the symbology interface on a map decoration?

I think that's exectly what Martin is saying can be done.

> Can we re-use existing widgets for this, or just a waste or time
> instead of designing a new widget?

Regards,
Alister___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Etienne Tourigny
Hi all

On Thu, May 10, 2012 at 5:39 PM, Martin Dobias  wrote:
> Hi
>
> On Thu, May 10, 2012 at 2:06 PM, Nathan Woodrow  wrote:
>> I think if QgsPluginLayer is a usable option that would be the way to go, or
>> maybe  QgsVectorLayer  but I suspect that you will need a provider for
>> that.
>
> I would suggest _not_ to create another provider for grids (for use as
> a vector layer). A grid is not really made of vector features, and
> lots of vector operations do not make much sense for grid. An
> interesting approach might be to use QgsPluginLayer class, but IMHO a
> grid is not even a layer... e.g. does it make any sense to draw some
> other layers on top of a grid?

I guess it makes more sense to draw the grid on top - are there any
uses to draw the grid below the layers? In any case, a simple
(top/bottom) selector would suffice.

>
> For me a grid is a good candidate to be implemented as another type of
> decoration (currently there is north arrow, scale bar and copyright
> label). A decoration is drawn on top of the map when map rendering has
> finished. And symbology can still be applied when drawing grid as a
> decoration.

Hmm... symbology applied to what?

Nathan's suggestion to make it a layer to be able to style it makes
sense. Any way we can use the symbology interface on a map decoration?
Can we re-use existing widgets for this, or just a waste or time
instead of designing a new widget?

>
> Regards
> Martin
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Martin Dobias
Hi

On Thu, May 10, 2012 at 2:06 PM, Nathan Woodrow  wrote:
> I think if QgsPluginLayer is a usable option that would be the way to go, or
> maybe  QgsVectorLayer  but I suspect that you will need a provider for
> that.

I would suggest _not_ to create another provider for grids (for use as
a vector layer). A grid is not really made of vector features, and
lots of vector operations do not make much sense for grid. An
interesting approach might be to use QgsPluginLayer class, but IMHO a
grid is not even a layer... e.g. does it make any sense to draw some
other layers on top of a grid?

For me a grid is a good candidate to be implemented as another type of
decoration (currently there is north arrow, scale bar and copyright
label). A decoration is drawn on top of the map when map rendering has
finished. And symbology can still be applied when drawing grid as a
decoration.

Regards
Martin
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Etienne Tourigny
On Thu, May 10, 2012 at 9:25 AM, Etienne Tourigny
 wrote:
> On Thu, May 10, 2012 at 9:06 AM, Nathan Woodrow  wrote:
>> I think if QgsPluginLayer is a usable option that would be the way to go, or
>> maybe  QgsVectorLayer  but I suspect that you will need a provider for
>> that.
>
> Is there a way we can create a QgsVectorLayer in memory, without using
> a provider? If not , perhaps we could use a OGR in-memory dataset
> ('/vsimem/') - is this used currently somewhere in qgis?

nevermind - just saw QgsMemoryProvider!

Any way the provider classes could be in the API documentation???

>
> Another idea - use a QgsPluginLayer which itself contains a number of
> QgsVectorLayers (e.g. polygon + polylines) to remove the need to
> create a provider - but this might be cumbersome.
>
> I'm definitely interested in collaborating with others in this!
>
> Etienne
>
>>
>> I think having it show up in the legend is a good idea that way it can be
>> turned on and off, styled, and ordered as the user needs.  E.g. sometimes I
>> might like to have yellow grid lines rather then black.
>>
>> - Nathan
>>
>> On Thu, May 10, 2012 at 10:01 PM, Etienne Tourigny 
>> wrote:
>>>
>>> On Thu, May 10, 2012 at 1:35 AM, Alister  Hood
>>>  wrote:
>>> >> Date: Wed, 9 May 2012 18:00:07 -0300
>>> >> From: Etienne Tourigny 
>>> >> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>>> >>         used in composer) - strategy?
>>> >> To: qgis-developer 
>>> >> Message-ID:
>>> >>
>>> >> 
>>> >> Content-Type: text/plain; charset=ISO-8859-1
>>> >>
>>> >> Hi all,
>>> >>
>>> >> I would like to add support to draw a grid on the map canvas, in a way
>>> >> similar to what is done in the map composer (although perhaps without
>>> >> the annotations on the borders).
>>> >>
>>> >> What should be the approach used?
>>> >>
>>> >> 1) plugin or core?
>>> >> 2) rubberbands or basic plot functions triggered after mapCanvas
>>> >> update?
>>> >>
>>> >> I think both drawing strategies are possible using a plugin.
>>> >>
>>> >> It would be best to write in the core, assuming there is sufficient
>>> >> interest in this, but it will take time to trickle down to the stable
>>> >> version (an argument for making it a plugin).
>>> >>
>>> >> I know the current workaround is to create a vector grid with ftools,
>>> >> but that is a little clunky.
>>> >>
>>> >> Any thoughts?
>>> >> Etienne
>>> >
>>> > Hi,
>>> > I'm not a developer, so this might be a crazy and unnecessary idea, but
>>> > would it be feasible to create a graticule _provider_?
>>> >
>>> > This approach would mean that like grids created with ftools, the grid
>>> > would be created as a layer, but it wouldn't be file based and its extents
>>> > would automatically update.
>>> >
>>> > Unlike the approach used in the composer, this would mean:
>>> > - digitising tools could snap to the grid lines.
>>> > - the identify tool could identify the grid lines.
>>> > - the layer could be used for analysis (e.g. you might want to use it to
>>> > split vector layers).
>>> > - symbology and feature labelling could work just like other vector
>>> > layers.
>>>
>>> Those are pretty cool ideas!
>>> Perhaps a new QgsMapCanvasItem, rather than a provider? Or even a new
>>> QgsPluginLayer or QgsVectorLayer, so this is actually a layer? In this
>>> case the layer would have to be in the legend, whereas it might be
>>> better to hide it from the legend.
>>>
>>> >
>>> > If this was to actually replace the grids in the composer, some
>>> > improvements to feature labelling would be needed.  Some of these would
>>> > probably be good to have anyway, e.g. an option to label both ends of a
>>> > line, and an option to align labels horizontally or vertically on the 
>>> > page,
>>> > rather than N-S or E-W.  I guess the difficult one would be providing a 
>>> > way
>>> > to display labels outside the map frame...
>>>
>>> This kind of modification would require modifying the core rather than
>>> making a plugin I think.
>>>
>>> >
>>> > Regards,
>>> > Alister
>>> ___
>>> Qgis-developer mailing list
>>> Qgis-developer@lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Etienne Tourigny
On Thu, May 10, 2012 at 9:06 AM, Nathan Woodrow  wrote:
> I think if QgsPluginLayer is a usable option that would be the way to go, or
> maybe  QgsVectorLayer  but I suspect that you will need a provider for
> that.

Is there a way we can create a QgsVectorLayer in memory, without using
a provider? If not , perhaps we could use a OGR in-memory dataset
('/vsimem/') - is this used currently somewhere in qgis?

Another idea - use a QgsPluginLayer which itself contains a number of
QgsVectorLayers (e.g. polygon + polylines) to remove the need to
create a provider - but this might be cumbersome.

I'm definitely interested in collaborating with others in this!

Etienne

>
> I think having it show up in the legend is a good idea that way it can be
> turned on and off, styled, and ordered as the user needs.  E.g. sometimes I
> might like to have yellow grid lines rather then black.
>
> - Nathan
>
> On Thu, May 10, 2012 at 10:01 PM, Etienne Tourigny 
> wrote:
>>
>> On Thu, May 10, 2012 at 1:35 AM, Alister  Hood
>>  wrote:
>> >> Date: Wed, 9 May 2012 18:00:07 -0300
>> >> From: Etienne Tourigny 
>> >> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>> >>         used in composer) - strategy?
>> >> To: qgis-developer 
>> >> Message-ID:
>> >>
>> >> 
>> >> Content-Type: text/plain; charset=ISO-8859-1
>> >>
>> >> Hi all,
>> >>
>> >> I would like to add support to draw a grid on the map canvas, in a way
>> >> similar to what is done in the map composer (although perhaps without
>> >> the annotations on the borders).
>> >>
>> >> What should be the approach used?
>> >>
>> >> 1) plugin or core?
>> >> 2) rubberbands or basic plot functions triggered after mapCanvas
>> >> update?
>> >>
>> >> I think both drawing strategies are possible using a plugin.
>> >>
>> >> It would be best to write in the core, assuming there is sufficient
>> >> interest in this, but it will take time to trickle down to the stable
>> >> version (an argument for making it a plugin).
>> >>
>> >> I know the current workaround is to create a vector grid with ftools,
>> >> but that is a little clunky.
>> >>
>> >> Any thoughts?
>> >> Etienne
>> >
>> > Hi,
>> > I'm not a developer, so this might be a crazy and unnecessary idea, but
>> > would it be feasible to create a graticule _provider_?
>> >
>> > This approach would mean that like grids created with ftools, the grid
>> > would be created as a layer, but it wouldn't be file based and its extents
>> > would automatically update.
>> >
>> > Unlike the approach used in the composer, this would mean:
>> > - digitising tools could snap to the grid lines.
>> > - the identify tool could identify the grid lines.
>> > - the layer could be used for analysis (e.g. you might want to use it to
>> > split vector layers).
>> > - symbology and feature labelling could work just like other vector
>> > layers.
>>
>> Those are pretty cool ideas!
>> Perhaps a new QgsMapCanvasItem, rather than a provider? Or even a new
>> QgsPluginLayer or QgsVectorLayer, so this is actually a layer? In this
>> case the layer would have to be in the legend, whereas it might be
>> better to hide it from the legend.
>>
>> >
>> > If this was to actually replace the grids in the composer, some
>> > improvements to feature labelling would be needed.  Some of these would
>> > probably be good to have anyway, e.g. an option to label both ends of a
>> > line, and an option to align labels horizontally or vertically on the page,
>> > rather than N-S or E-W.  I guess the difficult one would be providing a way
>> > to display labels outside the map frame...
>>
>> This kind of modification would require modifying the core rather than
>> making a plugin I think.
>>
>> >
>> > Regards,
>> > Alister
>> ___
>> Qgis-developer mailing list
>> Qgis-developer@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread John Donovan
On 10 May 2012 13:06, Nathan Woodrow  wrote:
> I think if QgsPluginLayer is a usable option that would be the way to go, or
> maybe  QgsVectorLayer  but I suspect that you will need a provider for
> that.
>
> I think having it show up in the legend is a good idea that way it can be
> turned on and off, styled, and ordered as the user needs.  E.g. sometimes I
> might like to have yellow grid lines rather then black.

Good idea. I had originally thought to hide it from the legend so it
was just considered an overlay, but to be able to use the QGIS styling
functionality makes a lot of sense.

-JD
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread John Donovan
On 10 May 2012 13:03, Etienne Tourigny  wrote:
> On Thu, May 10, 2012 at 6:37 AM, John Donovan  wrote:
>> I'm very interested in user-definable grid functionality, and I was
>> planning on implementing something myself for a plugin I'm writing. My
>> needs are to have the grid set to an arbitrary angle, and ideally to
>> know which grid square the user has clicked in, relative to a
>> user-defined origin.
>
> Can this angle be defined in terms of a projection, or is rather
> arbitrary with an origin and angle, relative to current projection?
> Could your needs be met with a (polygon) vector layer, which allows
> you to select one of the polygons?

My needs are that the origin and angle are independent of the
projection, and I was thinking of just creating a polygon layer
similar to fTools'. It would be nice though to make it smart, so that
the user can easily change the number of cells for instance, also so
that the grid's settings are stored in the project file rather than as
a vector file.

-JD
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Nathan Woodrow
I think if QgsPluginLayer is a usable option that would be the way to go,
or maybe  QgsVectorLayer  but I suspect that you will need a provider for
that.

I think having it show up in the legend is a good idea that way it can be
turned on and off, styled, and ordered as the user needs.  E.g. sometimes I
might like to have yellow grid lines rather then black.

- Nathan

On Thu, May 10, 2012 at 10:01 PM, Etienne Tourigny
wrote:

> On Thu, May 10, 2012 at 1:35 AM, Alister  Hood
>  wrote:
> >> Date: Wed, 9 May 2012 18:00:07 -0300
> >> From: Etienne Tourigny 
> >> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
> >> used in composer) - strategy?
> >> To: qgis-developer 
> >> Message-ID:
> >> <
> ca+txyvpd-5vhoycx4uhio9x416hkx9zgeq5ennnqvadp0l9...@mail.gmail.com>
> >> Content-Type: text/plain; charset=ISO-8859-1
> >>
> >> Hi all,
> >>
> >> I would like to add support to draw a grid on the map canvas, in a way
> >> similar to what is done in the map composer (although perhaps without
> >> the annotations on the borders).
> >>
> >> What should be the approach used?
> >>
> >> 1) plugin or core?
> >> 2) rubberbands or basic plot functions triggered after mapCanvas update?
> >>
> >> I think both drawing strategies are possible using a plugin.
> >>
> >> It would be best to write in the core, assuming there is sufficient
> >> interest in this, but it will take time to trickle down to the stable
> >> version (an argument for making it a plugin).
> >>
> >> I know the current workaround is to create a vector grid with ftools,
> >> but that is a little clunky.
> >>
> >> Any thoughts?
> >> Etienne
> >
> > Hi,
> > I'm not a developer, so this might be a crazy and unnecessary idea, but
> would it be feasible to create a graticule _provider_?
> >
> > This approach would mean that like grids created with ftools, the grid
> would be created as a layer, but it wouldn't be file based and its extents
> would automatically update.
> >
> > Unlike the approach used in the composer, this would mean:
> > - digitising tools could snap to the grid lines.
> > - the identify tool could identify the grid lines.
> > - the layer could be used for analysis (e.g. you might want to use it to
> split vector layers).
> > - symbology and feature labelling could work just like other vector
> layers.
>
> Those are pretty cool ideas!
> Perhaps a new QgsMapCanvasItem, rather than a provider? Or even a new
> QgsPluginLayer or QgsVectorLayer, so this is actually a layer? In this
> case the layer would have to be in the legend, whereas it might be
> better to hide it from the legend.
>
> >
> > If this was to actually replace the grids in the composer, some
> improvements to feature labelling would be needed.  Some of these would
> probably be good to have anyway, e.g. an option to label both ends of a
> line, and an option to align labels horizontally or vertically on the page,
> rather than N-S or E-W.  I guess the difficult one would be providing a way
> to display labels outside the map frame...
>
> This kind of modification would require modifying the core rather than
> making a plugin I think.
>
> >
> > Regards,
> > Alister
> ___
> Qgis-developer mailing list
> Qgis-developer@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Etienne Tourigny
On Thu, May 10, 2012 at 6:37 AM, John Donovan  wrote:
> I'm very interested in user-definable grid functionality, and I was
> planning on implementing something myself for a plugin I'm writing. My
> needs are to have the grid set to an arbitrary angle, and ideally to
> know which grid square the user has clicked in, relative to a
> user-defined origin.

Can this angle be defined in terms of a projection, or is rather
arbitrary with an origin and angle, relative to current projection?
Could your needs be met with a (polygon) vector layer, which allows
you to select one of the polygons?

>
> If anyone wants to collaborate, or just has ideas on how best to
> implement it, let me know.
>
> Regards,
> JD
>
> On 10 May 2012 05:35, Alister  Hood  wrote:
>>> Date: Wed, 9 May 2012 18:00:07 -0300
>>> From: Etienne Tourigny 
>>> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>>>         used in composer) - strategy?
>>> To: qgis-developer 
>>> Message-ID:
>>>         
>>> Content-Type: text/plain; charset=ISO-8859-1
>>>
>>> Hi all,
>>>
>>> I would like to add support to draw a grid on the map canvas, in a way
>>> similar to what is done in the map composer (although perhaps without
>>> the annotations on the borders).
>>>
>>> What should be the approach used?
>>>
>>> 1) plugin or core?
>>> 2) rubberbands or basic plot functions triggered after mapCanvas update?
>>>
>>> I think both drawing strategies are possible using a plugin.
>>>
>>> It would be best to write in the core, assuming there is sufficient
>>> interest in this, but it will take time to trickle down to the stable
>>> version (an argument for making it a plugin).
>>>
>>> I know the current workaround is to create a vector grid with ftools,
>>> but that is a little clunky.
>>>
>>> Any thoughts?
>>> Etienne
>>
>> Hi,
>> I'm not a developer, so this might be a crazy and unnecessary idea, but 
>> would it be feasible to create a graticule _provider_?
>>
>> This approach would mean that like grids created with ftools, the grid would 
>> be created as a layer, but it wouldn't be file based and its extents would 
>> automatically update.
>>
>> Unlike the approach used in the composer, this would mean:
>> - digitising tools could snap to the grid lines.
>> - the identify tool could identify the grid lines.
>> - the layer could be used for analysis (e.g. you might want to use it to 
>> split vector layers).
>> - symbology and feature labelling could work just like other vector layers.
>>
>> If this was to actually replace the grids in the composer, some improvements 
>> to feature labelling would be needed.  Some of these would probably be good 
>> to have anyway, e.g. an option to label both ends of a line, and an option 
>> to align labels horizontally or vertically on the page, rather than N-S or 
>> E-W.  I guess the difficult one would be providing a way to display labels 
>> outside the map frame...
>>
>> Regards,
>> Alister___
>> Qgis-developer mailing list
>> Qgis-developer@lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>
>
>
> --
> One of the advantages of being disorderly is that one is constantly
> making exciting discoveries. - AA Milne
> ___
> Qgis-developer mailing list
> Qgis-developer@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread Etienne Tourigny
On Thu, May 10, 2012 at 1:35 AM, Alister  Hood
 wrote:
>> Date: Wed, 9 May 2012 18:00:07 -0300
>> From: Etienne Tourigny 
>> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>>         used in composer) - strategy?
>> To: qgis-developer 
>> Message-ID:
>>         
>> Content-Type: text/plain; charset=ISO-8859-1
>>
>> Hi all,
>>
>> I would like to add support to draw a grid on the map canvas, in a way
>> similar to what is done in the map composer (although perhaps without
>> the annotations on the borders).
>>
>> What should be the approach used?
>>
>> 1) plugin or core?
>> 2) rubberbands or basic plot functions triggered after mapCanvas update?
>>
>> I think both drawing strategies are possible using a plugin.
>>
>> It would be best to write in the core, assuming there is sufficient
>> interest in this, but it will take time to trickle down to the stable
>> version (an argument for making it a plugin).
>>
>> I know the current workaround is to create a vector grid with ftools,
>> but that is a little clunky.
>>
>> Any thoughts?
>> Etienne
>
> Hi,
> I'm not a developer, so this might be a crazy and unnecessary idea, but would 
> it be feasible to create a graticule _provider_?
>
> This approach would mean that like grids created with ftools, the grid would 
> be created as a layer, but it wouldn't be file based and its extents would 
> automatically update.
>
> Unlike the approach used in the composer, this would mean:
> - digitising tools could snap to the grid lines.
> - the identify tool could identify the grid lines.
> - the layer could be used for analysis (e.g. you might want to use it to 
> split vector layers).
> - symbology and feature labelling could work just like other vector layers.

Those are pretty cool ideas!
Perhaps a new QgsMapCanvasItem, rather than a provider? Or even a new
QgsPluginLayer or QgsVectorLayer, so this is actually a layer? In this
case the layer would have to be in the legend, whereas it might be
better to hide it from the legend.

>
> If this was to actually replace the grids in the composer, some improvements 
> to feature labelling would be needed.  Some of these would probably be good 
> to have anyway, e.g. an option to label both ends of a line, and an option to 
> align labels horizontally or vertically on the page, rather than N-S or E-W.  
> I guess the difficult one would be providing a way to display labels outside 
> the map frame...

This kind of modification would require modifying the core rather than
making a plugin I think.

>
> Regards,
> Alister
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


Re: [Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-10 Thread John Donovan
I'm very interested in user-definable grid functionality, and I was
planning on implementing something myself for a plugin I'm writing. My
needs are to have the grid set to an arbitrary angle, and ideally to
know which grid square the user has clicked in, relative to a
user-defined origin.

If anyone wants to collaborate, or just has ideas on how best to
implement it, let me know.

Regards,
JD

On 10 May 2012 05:35, Alister  Hood  wrote:
>> Date: Wed, 9 May 2012 18:00:07 -0300
>> From: Etienne Tourigny 
>> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>>         used in composer) - strategy?
>> To: qgis-developer 
>> Message-ID:
>>         
>> Content-Type: text/plain; charset=ISO-8859-1
>>
>> Hi all,
>>
>> I would like to add support to draw a grid on the map canvas, in a way
>> similar to what is done in the map composer (although perhaps without
>> the annotations on the borders).
>>
>> What should be the approach used?
>>
>> 1) plugin or core?
>> 2) rubberbands or basic plot functions triggered after mapCanvas update?
>>
>> I think both drawing strategies are possible using a plugin.
>>
>> It would be best to write in the core, assuming there is sufficient
>> interest in this, but it will take time to trickle down to the stable
>> version (an argument for making it a plugin).
>>
>> I know the current workaround is to create a vector grid with ftools,
>> but that is a little clunky.
>>
>> Any thoughts?
>> Etienne
>
> Hi,
> I'm not a developer, so this might be a crazy and unnecessary idea, but would 
> it be feasible to create a graticule _provider_?
>
> This approach would mean that like grids created with ftools, the grid would 
> be created as a layer, but it wouldn't be file based and its extents would 
> automatically update.
>
> Unlike the approach used in the composer, this would mean:
> - digitising tools could snap to the grid lines.
> - the identify tool could identify the grid lines.
> - the layer could be used for analysis (e.g. you might want to use it to 
> split vector layers).
> - symbology and feature labelling could work just like other vector layers.
>
> If this was to actually replace the grids in the composer, some improvements 
> to feature labelling would be needed.  Some of these would probably be good 
> to have anyway, e.g. an option to label both ends of a line, and an option to 
> align labels horizontally or vertically on the page, rather than N-S or E-W.  
> I guess the difficult one would be providing a way to display labels outside 
> the map frame...
>
> Regards,
> Alister___
> Qgis-developer mailing list
> Qgis-developer@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer



-- 
One of the advantages of being disorderly is that one is constantly
making exciting discoveries. - AA Milne
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


[Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-09 Thread Alister Hood
> Date: Wed, 9 May 2012 18:00:07 -0300
> From: Etienne Tourigny 
> Subject: [Qgis-developer] show grid on map canvas (similiar to grid
>     used in composer) - strategy?
> To: qgis-developer 
> Message-ID:
> 
> Content-Type: text/plain; charset=ISO-8859-1
> 
> Hi all,
> 
> I would like to add support to draw a grid on the map canvas, in a way
> similar to what is done in the map composer (although perhaps without
> the annotations on the borders).
> 
> What should be the approach used?
> 
> 1) plugin or core?
> 2) rubberbands or basic plot functions triggered after mapCanvas update?
> 
> I think both drawing strategies are possible using a plugin.
> 
> It would be best to write in the core, assuming there is sufficient
> interest in this, but it will take time to trickle down to the stable
> version (an argument for making it a plugin).
> 
> I know the current workaround is to create a vector grid with ftools,
> but that is a little clunky.
> 
> Any thoughts?
> Etienne

Hi,
I'm not a developer, so this might be a crazy and unnecessary idea, but would 
it be feasible to create a graticule _provider_?

This approach would mean that like grids created with ftools, the grid would be 
created as a layer, but it wouldn't be file based and its extents would 
automatically update.

Unlike the approach used in the composer, this would mean:
- digitising tools could snap to the grid lines.
- the identify tool could identify the grid lines.
- the layer could be used for analysis (e.g. you might want to use it to split 
vector layers).
- symbology and feature labelling could work just like other vector layers.

If this was to actually replace the grids in the composer, some improvements to 
feature labelling would be needed.  Some of these would probably be good to 
have anyway, e.g. an option to label both ends of a line, and an option to 
align labels horizontally or vertically on the page, rather than N-S or E-W.  I 
guess the difficult one would be providing a way to display labels outside the 
map frame...

Regards,
Alister___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer


[Qgis-developer] show grid on map canvas (similiar to grid used in composer) - strategy?

2012-05-09 Thread Etienne Tourigny
Hi all,

I would like to add support to draw a grid on the map canvas, in a way
similar to what is done in the map composer (although perhaps without
the annotations on the borders).

What should be the approach used?

1) plugin or core?
2) rubberbands or basic plot functions triggered after mapCanvas update?

I think both drawing strategies are possible using a plugin.

It would be best to write in the core, assuming there is sufficient
interest in this, but it will take time to trickle down to the stable
version (an argument for making it a plugin).

I know the current workaround is to create a vector grid with ftools,
but that is a little clunky.

Any thoughts?
Etienne
___
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer