[mapserver-users] RE: How to label only largest displayed

Anzel, Phil - NRCS, Fort Collins, CO Phil.Anzel at ftc.usda.gov
Fri Feb 3 07:36:00 PST 2012


Hi, Steve W,

Thanks again. I'll hold on to your enhancement suggestion and if your MINDISTANCE/MINFEATURESIZE suggestions, coupled with Steve L.'s sorting suggestion do not yield a cartographically-pleasing solution, I'll create the enhancement ticket and investigate how best to proceed.

FWIW we're using Microsoft SQL Server 2008, which lets us clip polygons as part of the retrieval query. The enhancement ticket I recently submitted (#4173: Define a current layer extent's WKT string for use in Data statement) shows how it is done; the missing piece is to actually have the dimensions of the bounding box. My ticket asks that such information, the layer's extent as well-kn0wn-text, be made available for lexical substitution in the Data statement. Again, if your and Steve L.'s suggestions work out, the need for your suggested enhancement, as well as mine, fades away.

- Phil

Date: Fri, 03 Feb 2012 09:44:22 -0500
From: Stephen Woodbridge <woodbri at swoodbridge.com>
Subject: Re: [mapserver-users] RE: How to label only largest displayed
	areas?
To: mapserver-users at lists.osgeo.org
Message-ID: <4F2BF2C6.3000700 at swoodbridge.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Phil,

In theory, it might be possible to do this by extending the labelcache 
code to save the clipped area size of each polygon or a clipped length 
of a line and then sort the labelcache items by size and label them. 
MINDISTANCE could be applied to limit the number of labels using the 
existing code. This behavior would need to be triggered by a new LABEL 
keyword maybe like PRIORITY [LARGEST|SMALLEST]

If you want to write an enhancement ticket for this in the bug tracker 
you can add my comment above, but I suspect that you would have to fund 
the development of this or provide a patch.

Best regards,
   -Steve W

On 2/3/2012 8:59 AM, Anzel, Phil - NRCS, Fort Collins, CO wrote:
> Hi, Jukka and Steve,
>
> Thanks for your replies. Jukka is correct, I do not believe it is
> simple. Steve, your approach sorts all areas and then filters by
> those visible in the layer's extent. I'm looking for ranking by the
> clipped area. For example, if the current map and layer's extent
> shows the a small sliver of the mainland of California and a larger
> visible part of an island that is part of California, only the island
> would be labeled, as its visible area is larger than that of the
> sliver.
>
> - Phil
>
> -----Original Message----- From: Rahkonen Jukka
> [mailto:Jukka.Rahkonen at mmmtike.fi] Sent: Thursday, February 02, 2012
> 4:01 PM To: Lime, Steve D (DNR); Anzel, Phil - NRCS, Fort Collins,
> CO; mapserver-users at lists.osgeo.org Subject: Re: How to label only
> largest displayed areas?
>
> Hi,
>
> I understood that meaning was to put exactly one label per state.
> Each state, even tiny ones, should be labeled. But one state should
> get only one label even if the map window is splitting the state
> polygon into two or more intersections. Those intersections may be
> bigger than the tiny state. Not extremely simple.
>
> -Jukka-
>
> ________________________________________ L Lime, Steve D (DNR)
> wrote:
>
>> I'd do this by sorting features based on area (ascending order).
>> This would draw the smallest polygons first, but would put the
>> labels for the shapes with the largest area into the label cache
>> last (where they would be placed and drawn first). I've done this
>> with labeling lakes and it works fine.
>
> Steve
>
> -----Original Message----- From:
> mapserver-users-bounces at lists.osgeo.org
> [mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of Anzel,
> Phil - NRCS, Fort Collins, CO Sent: Thursday, February 02, 2012 1:43
> PM To: mapserver-users at lists.osgeo.org Cc: Anzel, Phil - NRCS, Fort
> Collins, CO Subject: [mapserver-users] How to label only largest
> displayed areas?
>
> Hi, All,
>
> How can I label only the largest displayed areas within an extent?
> For example, if I'm labeling states of the United States and my
> extent covers a small region around the Maine, New Hampshire and
> Massachusetts junction, I only want a single label for each state,
> chosen by the largest displayed area (within the current map extent)
> in each state.
>
> I'm using spatial data stored in Microsoft's SQL Server 2008.
>
> I've created an enhancement request ticket (#4173: Define a current
> layer extent's WKT string for use in Data statement) as one possible
> approach, but this approach requires a change to MapServer.
>
> Is there a better way?
>
> Thanks.
>
> - Phil Anzel Vistronix Inc for USDA/NRCS/ITC
>
> This electronic message contains information generated by the USDA
> solely for the intended recipients.  Any unauthorized interception of
> this message or the use or disclosure of the information it contains
> may violate the law and subject the violator to civil or criminal
> penalties.  If you believe you have received this message in error,
> please notify the sender and delete the email immediately.





More information about the MapServer-users mailing list