[OpenLayers-Users] wfs stylemap example?
Alexandre Dube
adube at mapgears.com
Wed Jul 30 15:33:00 EDT 2008
Hi Arnd,
Thanks for very much for your tips. That works just fine !
But for my little application it's not really useful. Do you know a
way to just change the color of a feature on "hover" without selecting
it ? That would be useful for me because I have lines as vector
features and those are really hard to select by clicking on them. You
have to be really precise.
With a color change, that would be easier to know you can now click
on it. And I don't know if that's possible but it would be nice to have
a bigger "pixel tolerance" when I click. Any clues about that ?
Arnd Wippermann wrote:
> Hi Alexandre,
>
> i have also tried your example and get it working for me. Also for the
> 'select' rule mentioned by Todd, but on the modifyFeature control instead on
> the selectFeature control. I don't know why. Thanks for the example source.
>
> To select a feature with hover you can set 'hover' to true for the
> selectFeature control. See below.
>
> It's the first time I tried the options for the selectFeature control in an
> own application. They work great. Only 'shiftKey' is a bit awksome, because
> if you don't hit the feature you zoom one level high.
>
> Arnd Wippermann
>
> part from select-feature.html:
>
> drawControls = {
> point: new OpenLayers.Control.DrawFeature(
> vectors, OpenLayers.Handler.Point
> ),
> line: new OpenLayers.Control.DrawFeature(
> vectors, OpenLayers.Handler.Path
> ),
> polygon: new OpenLayers.Control.DrawFeature(
> vectors, OpenLayers.Handler.Polygon
> ),
> select: new OpenLayers.Control.SelectFeature(
> vectors,
> {
> clickout: false, toggle: false,
> multiple: false, hover: false,
> toggleKey: "ctrlKey", // ctrl key removes from selection
> multipleKey: "shiftKey" // shift key adds to selection
> }
> )
> };
>
> for(var key in drawControls) {
> map.addControl(drawControls[key]);
> }
>
>
> -----Ursprüngliche Nachricht-----
> Von: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org] Im
> Auftrag von Alexandre Dube
> Gesendet: Mittwoch, 30. Juli 2008 16:05
> An: Brenningmeyer, Todd
> Cc: Users at openlayers.org
> Betreff: Re: [OpenLayers-Users] wfs stylemap example?
>
> Hi Todd,
>
> You're right. That would be the good way to set a color to a selected
> feature. But first I suggest you to pick an other color than blue because
> it is the default color for "select".
>
> Second, you actually have to select it, like with a selectFeature or
> modifyFeature control. By clicking on it, it will change your color.
> See the example : http://openlayers.org/dev/examples/modify-feature.html
>
> About the "hover" stuff, anybody correct me if I am wrong, but I would try
> to register an event with "mousemove" that would call the clickFeature
> function in the selectFeature.js file ( or an other function that does the
> same thing ). Instead of having to click on the feature directly, being
> over it would select it and change its color.
>
> But, that would be annoying because if you would actually want to select
> it ( and keep it selected ) you would not be able to because as soon as your
> mouse would not be over it, it would be unselected.
>
> Hope this can be of any help,
>
> Brenningmeyer, Todd wrote:
>
>> Thanks so much!!! That's just what I was looking for. My features are now
>>
> displaying as I'd hoped. Is it difficult to extend this to change features
> that are selected onhover? I added:
>
>> var selrules = [new OpenLayers.Rule({
>> symbolizer: {strokeColor:"blue",strokeWidth: 2},
>> elseFilter: true
>> })];
>> oStyleMap.styles["select"].addRules(selrules);
>>
>> to your .js file but nothing happens when I hover over the points
>> (it's a bit gawdy but I just wanted to see if it would work). I think
>> I need to add a control but haven't tried this before. Will this
>> work? The points aren't currently changing. Are there additional
>> considerations that I need to think about. I'm just trying to port my
>> old mapserver interface to openlayers and any help is appreciated.
>> Thanks again, Todd
>>
>> -----Original Message-----
>> From: Alexandre Dube [mailto:adube at mapgears.com]
>> Sent: Tue 7/29/2008 3:22 PM
>> To: Brenningmeyer, Todd
>> Cc: Users at openlayers.org
>> Subject: Re: [OpenLayers-Users] wfs stylemap example?
>>
>> Hi Todd,
>>
>> I have some to share. My WFS layer contains line features ( roads )
>> and they have different color depending on their type ( Local road,
>> Highway, etc ). I hope this can be of any help :
>>
>> ============= otherfile.js =============
>>
>> // prepare to style the data
>> var oStyleMap = new OpenLayers.StyleMap();
>>
>> // Array of symbolizer and other values for ROL_CO_CLA attribute //
>> this will be used to create a html select list and will be used // as
>> the symbolizer array for the addUniqueValueRules function // sorry,
>> there's some french words here :) var aRoadType = new Array();
>> aRoadType = {
>> AUT: {
>> text: "Autoroute",
>> strokeColor: "#ff0000", strokeWidth: 3 },
>> NAT: {
>> text: "Nationale",
>> strokeColor:"#ff8c00", strokeWidth: 2 },
>> REG: {
>> text: "Régionale - Reg",
>> strokeColor:"#ff8c00", strokeWidth: 2 },
>> COL: {
>> text: "Régionale - Col",
>> strokeColor:"#ff8c00", strokeWidth: 2 },
>> ACC: {
>> text: "Locale - Acc",
>> strokeColor:"#d2b48c", strokeWidth: 2 },
>> LOC: {
>> text: "Locale - Loc",
>> strokeColor:"#d2b48c", strokeWidth: 2 },
>> ACH: {
>> text: "Chemin forestier - Ach",
>> strokeColor:"#734c00", strokeWidth: 2 },
>> MRN: {
>> text:"Chemin forestier - Mrn",
>> strokeColor:"#734c00", strokeWidth: 2 } }
>>
>> // a style will applies to each drawned vector feature depending on //
>> the ROL_CO_CLA attribute value. It will match the good value and
>> applies // the corresponding symbolizers
>> oStyleMap.addUniqueValueRules("default", "ROL_CO_CLA", aRoadType);
>>
>> // If no rules applies to the current vector feature, that means it's
>> // not a road, but an other type of feature like a circle for drag //
>> control. The "elseFilter: true" is used to display those vectors.
>> var rules = [new OpenLayers.Rule({
>> symbolizer: {strokeColor:"#FF0000",strokeWidth: 2},
>> elseFilter: true
>> })];
>> oStyleMap.styles["default"].addRules(rules);
>>
>> ============= yourHTMLFile.html =============
>>
>> --- inside your <head> section ---
>> <script src="otherfile.js"></script>
>>
>> --- inside your init() function ---
>>
>> OpenLayers.Feature.Vector.style['default']['strokeWidth'] = '2';
>>
>> // then some variables... map definition... base layer ... some WMS
>> layers ... and :
>>
>> olWFSRoads = new OpenLayers.Layer.WFS( "Roads - WFS", sMSURL, {
>> typename: "roads", map: sMapPath }, { extractAttributes: true,
>> minScale: 49999,
>> typename: "roads", styleMap: oStyleMap } );
>>
>> // then addlayers, controls, etc. and your <body>
>>
>> Brenningmeyer, Todd wrote:
>>
>>
>>> Hello,
>>> Does anyone have an example code snippet that shows how to use a stylemap
>>>
> with wfs data that is being served as vectors (I'm trying to serve up
> points). I've been trying to get this to work using some of the examples on
> the wiki but I can't quite get the syntax to work properly. If anyone has
> ideas or an example that would be great.
>
>>> Thanks,
>>> Todd
>>> _______________________________________________
>>> Users mailing list
>>> Users at openlayers.org
>>> http://openlayers.org/mailman/listinfo/users
>>>
>>>
>>>
>>
>>
>
>
> --
> Alexandre Dubé
> Mapgears
> www.mapgears.com
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
>
--
Alexandre Dubé
Mapgears
www.mapgears.com
More information about the Users
mailing list