[OpenLayers-Users] selecting marker potential bug

2009-06-12 Thread Chris Abraham

Hi,
I think I have found a bug.  See attached file for a simple test case.

When you click on one of the points (features) a popup will display.   
Since the feature is selected, it's style changes and it turns blue.   
This is unexpected.  I would have expected it to keep the default  
style, that is, for it not to change in appearance.  Is this the  
desired behavior.  To prevent the appearance change, you can change  
line 71 to:

default: style, select: style

Please let me know if this is a bug or not.

Also, it may be related to this bug http://trac.openlayers.org/ticket/ 
1498.


Thanks,
Chris




Title: OpenLayers Cluster Strategy Threshold



Cluster Strategy Threshold

Demonstrates the use of the cluster strategy threshold property.



The Cluster strategy lets you display points representing clusters
of features within some pixel distance.  You can control the behavior
of the cluster strategy by setting its distance and threshold properties.
The distance determines the search radius (in pixels) for features to
cluster.  The threshold determines the minimum number of features to
be considered a cluster.



Cluster details: hover over a feature to see details.



distance




threshold


recluster



___
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users


Re: [OpenLayers-Users] selecting marker potential bug

2009-06-12 Thread Christopher Schmidt
On Fri, Jun 12, 2009 at 02:19:37PM -0400, Chris Abraham wrote:
 Hi,
 I think I have found a bug.  See attached file for a simple test case.
 
 When you click on one of the points (features) a popup will display.   
 Since the feature is selected, it's style changes and it turns blue.   
 This is unexpected.  I would have expected it to keep the default  
 style, that is, for it not to change in appearance.  Is this the  
 desired behavior.  To prevent the appearance change, you can change  
 line 71 to:
 default: style, select: style
 
 Please let me know if this is a bug or not.

This is documented behavior.

http://docs.openlayers.org/library/feature_styling.html

The “default” intent has a special role: if the extendDefault
property of the StyleMap is set to true (default), symbolizers
calculated for other render intents will extend the symbolizer
calcualated for the “default” intent. So if we want selected
features just to have a different size or color, we only have to set a
single property (in this example: pointRadius).

Basically:

 * If you want things to always look the same, pass a symbolizer
   directly into the StyleMap, not into default. 
 * if you want to control the style when something is selected,
   pass in a 'select' param to the hash
 * If you are fine with the default selcetion style when applied
   to your 'default' rules, then just pass in default.

-- Chris

 Also, it may be related to this bug http://trac.openlayers.org/ticket/ 
 1498.
 
 Thanks,
 Chris
 
 
 
 

 html xmlns=http://www.w3.org/1999/xhtml;
 head
 titleOpenLayers Cluster Strategy Threshold/title
 link rel=stylesheet href=../theme/default/style.css 
 type=text/css /
 link rel=stylesheet href=style.css type=text/css /
 style type=text/css
 ul {
 list-style: none;
 padding-left: 2em;
 }
 #reset {
 margin-left: 2em;
 }
 /style
 script 
 src=http://openlayers.org/api/2.8-rc5/OpenLayers.js;/script
 script type=text/javascript
 
 // create a semi-random grid of features to be clustered
 var dx = 3;
 var dy = 3;
 var px, py;
 var features = [];
 for(var x=-45; x=45; x+=dx) {
 for(var y=-22.5; y=22.5; y+=dy) {
 px = x + (2 * dx * (Math.random() - 0.5));
 py = y + (2 * dy * (Math.random() - 0.5));
 features.push(new OpenLayers.Feature.Vector(
 new OpenLayers.Geometry.Point(px, py), {x: px, y: py}
 ));
 }
 }
 
 var map, strategy, clusters;
 function init() {
 map = new OpenLayers.Map('map');
 var base = new OpenLayers.Layer.WMS(OpenLayers WMS, 
 [http://t3.labs.metacarta.com/wms-c/Basic.py;,
  http://t2.labs.metacarta.com/wms-c/Basic.py;,
  http://t1.labs.metacarta.com/wms-c/Basic.py;], 
 {layers: 'satellite'}
 );
 
 var style = new OpenLayers.Style({
 pointRadius: ${radius},
 fillColor: #ffcc66,
 fillOpacity: 0.8,
 strokeColor: #cc6633,
 strokeWidth: ${width},
 strokeOpacity: 0.8
 }, {
 context: {
 width: function(feature) {
 return (feature.cluster) ? 2 : 1;
 },
 radius: function(feature) {
 var pix = 2;
 if(feature.cluster) {
 pix = Math.min(feature.attributes.count, 7) + 
 2;
 }
 return pix;
 }
 }
 });
 
 strategy = new OpenLayers.Strategy.Cluster();
 
 clusters = new OpenLayers.Layer.Vector(Clusters, {
 strategies: [strategy],
 styleMap: new OpenLayers.StyleMap({
 default: style
 })
 });
 function onSelectFeature(feature) {
   var popup = new OpenLayers.Popup.FramedCloud(null, 
 feature.geometry.getBounds().getCenterLonLat(),
null, 'hi',
{size: new 
 OpenLayers.Size(1, 1), offset: new OpenLayers.Pixel(1,-2)},
true, function() { 
 selectControl.unselect(feature); });
   feature.popup = popup
   map.addPopup(popup);
 }
 
 var select = new 

Re: [OpenLayers-Users] selecting marker potential bug

2009-06-12 Thread Chris Abraham
Alternatively, you can replace lines 69-71 with:
 styleMap: new OpenLayers.StyleMap(
 style
 )

I assume here that since I didn't specify default this style gets  
set to all options.

Chris


On Jun 12, 2009, at 2:19 PM, Chris Abraham wrote:

 Hi,
 I think I have found a bug.  See attached file for a simple test case.

 When you click on one of the points (features) a popup will  
 display.  Since the feature is selected, it's style changes and it  
 turns blue.  This is unexpected.  I would have expected it to keep  
 the default style, that is, for it not to change in appearance.  Is  
 this the desired behavior.  To prevent the appearance change, you  
 can change line 71 to:
 default: style, select: style

 Please let me know if this is a bug or not.

 Also, it may be related to this bug http://trac.openlayers.org/ 
 ticket/1498.

 Thanks,
 Chris




 clusteringbug.html___
 Users mailing list
 Users@openlayers.org
 http://openlayers.org/mailman/listinfo/users

___
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users


Re: [OpenLayers-Users] selecting marker potential bug

2009-06-12 Thread Chris Abraham
Great.  Makes sense.  Thanks.
Chris

On Jun 12, 2009, at 2:47 PM, Christopher Schmidt wrote:

 On Fri, Jun 12, 2009 at 02:19:37PM -0400, Chris Abraham wrote:
 Hi,
 I think I have found a bug.  See attached file for a simple test  
 case.

 When you click on one of the points (features) a popup will display.
 Since the feature is selected, it's style changes and it turns blue.
 This is unexpected.  I would have expected it to keep the default
 style, that is, for it not to change in appearance.  Is this the
 desired behavior.  To prevent the appearance change, you can change
 line 71 to:
 default: style, select: style

 Please let me know if this is a bug or not.

 This is documented behavior.

 http://docs.openlayers.org/library/feature_styling.html

 The “default” intent has a special role: if the extendDefault
 property of the StyleMap is set to true (default), symbolizers
 calculated for other render intents will extend the symbolizer
 calcualated for the “default” intent. So if we want selected
 features just to have a different size or color, we only have to set a
 single property (in this example: pointRadius).

 Basically:

  * If you want things to always look the same, pass a symbolizer
directly into the StyleMap, not into default.
  * if you want to control the style when something is selected,
pass in a 'select' param to the hash
  * If you are fine with the default selcetion style when applied
to your 'default' rules, then just pass in default.

 -- Chris

 Also, it may be related to this bug http://trac.openlayers.org/ 
 ticket/
 1498.

 Thanks,
 Chris





 html xmlns=http://www.w3.org/1999/xhtml;
 head
 titleOpenLayers Cluster Strategy Threshold/title
 link rel=stylesheet href=../theme/default/style.css  
 type=text/css /
 link rel=stylesheet href=style.css type=text/css /
 style type=text/css
 ul {
 list-style: none;
 padding-left: 2em;
 }
 #reset {
 margin-left: 2em;
 }
 /style
 script src=http://openlayers.org/api/2.8-rc5/ 
 OpenLayers.js/script
 script type=text/javascript

 // create a semi-random grid of features to be clustered
 var dx = 3;
 var dy = 3;
 var px, py;
 var features = [];
 for(var x=-45; x=45; x+=dx) {
 for(var y=-22.5; y=22.5; y+=dy) {
 px = x + (2 * dx * (Math.random() - 0.5));
 py = y + (2 * dy * (Math.random() - 0.5));
 features.push(new OpenLayers.Feature.Vector(
 new OpenLayers.Geometry.Point(px, py), {x:  
 px, y: py}
 ));
 }
 }

 var map, strategy, clusters;
 function init() {
 map = new OpenLayers.Map('map');
 var base = new OpenLayers.Layer.WMS(OpenLayers WMS,
 [http://t3.labs.metacarta.com/wms-c/Basic.py;,
  http://t2.labs.metacarta.com/wms-c/Basic.py;,
  http://t1.labs.metacarta.com/wms-c/Basic.py;],
 {layers: 'satellite'}
 );

 var style = new OpenLayers.Style({
 pointRadius: ${radius},
 fillColor: #ffcc66,
 fillOpacity: 0.8,
 strokeColor: #cc6633,
 strokeWidth: ${width},
 strokeOpacity: 0.8
 }, {
 context: {
 width: function(feature) {
 return (feature.cluster) ? 2 : 1;
 },
 radius: function(feature) {
 var pix = 2;
 if(feature.cluster) {
 pix = Math.min 
 (feature.attributes.count, 7) + 2;
 }
 return pix;
 }
 }
 });

 strategy = new OpenLayers.Strategy.Cluster();

 clusters = new OpenLayers.Layer.Vector(Clusters, {
 strategies: [strategy],
 styleMap: new OpenLayers.StyleMap({
 default: style
 })
 });
 function onSelectFeature(feature) {
   var popup = new OpenLayers.Popup.FramedCloud(null,  
 feature.geometry.getBounds().getCenterLonLat(),
null, 'hi',
{size: new  
 OpenLayers.Size(1, 1), offset: new OpenLayers.Pixel(1,-2)},
true, function 
 () { selectControl.unselect(feature); });
   feature.popup = popup
   map.addPopup(popup);
 }