[OpenLayers-Users] Multiple linestrings originating from the
same point disappear when zooming
cmose
cjmose at gmail.com
Wed Jan 23 12:25:58 EST 2008
Thanks, I'll check out the patch and give that a try. I need to rework my
example as I am experiencing the same problem in IE on my production app but
the example I knocked up isn't showing that (in fact it looks like it errors
out in ie).
Pierre GIRAUD wrote:
>
> Ok, I just remembered this was an already discussed issue.
> http://trac.openlayers.org/ticket/719
> http://trac.openlayers.org/ticket/713
>
> Regards,
> Pierre
>
> On Jan 19, 2008 12:13 PM, Pierre GIRAUD <bluecarto at gmail.com> wrote:
>> For your information, your code is correct and I think I've found what
>> part of the OpenLayers' code is involved in this weird behavior.
>> I'll try to find out a fix or at least a workaround for this issue. If
>> your interested in fixing this too, you can have a look at the SVG
>> renderer (lib/OpenLayers/Renderer/SVG.js) and in particular at
>> getShortString(), inValidRange() and MAX_PIXEL.
>>
>> I plan to fill a bug report, but don't hesitate to do so if your quicker.
>>
>> Hum, I was unable to reproduce the issue under IE with your example.
>>
>> Regards,
>> Pierre
>>
>>
>>
>> On Jan 18, 2008 5:23 PM, cmose <cjmose at gmail.com> wrote:
>> >
>> > I have several lineStrings on a vector layer that originate from the
>> same
>> > lat/lon coordinate. As you zoom in on the map, the lineStrings randomly
>> > disappear, e.g,. if you start out with 6 lines originating from the
>> same
>> > point, as you zoom in on the map lines will randomly disappear until
>> there
>> > are <6 lines left.
>> >
>> > I've verified this behavior using a modified version of
>> vector-features.html
>> > from the examples directory. I don't have anywhere to host my example
>> but
>> > here is my modified script declaration from vector-features.html:
>> >
>> > <script src="../lib/OpenLayers.js" type="text/javascript"></script>
>> > <script type="text/javascript">
>> > var map;
>> >
>> > function init(){
>> > map = new OpenLayers.Map('map');
>> > var layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
>> > "http://labs.metacarta.com/wms/vmap0", {layers:
>> 'basic'}
>> > );
>> > map.addLayer(layer);
>> >
>> > /*
>> > * Layer style
>> > */
>> > // we want opaque external graphics and non-opaque internal
>> > graphics
>> > var layer_style = OpenLayers.Util.extend({},
>> > OpenLayers.Feature.Vector.style['default']);
>> > layer_style.fillOpacity = 0.2;
>> > layer_style.graphicOpacity = 1;
>> >
>> > /*
>> > * Blue style
>> > */
>> > var style_blue = OpenLayers.Util.extend({}, layer_style);
>> > style_blue.strokeColor = "blue";
>> > style_blue.fillColor = "blue";
>> >
>> > /*
>> > * Green style
>> > */
>> > var style_green = {
>> > strokeColor: "#00FF00",
>> > strokeWidth: 2,
>> > pointRadius: 4,
>> > pointerEvents: "visiblePainted"
>> > };
>> >
>> > /*
>> > * Mark style
>> > */
>> > var style_mark = OpenLayers.Util.extend({},
>> > OpenLayers.Feature.Vector.style['default']);
>> > // each of the three lines below means the same, if only
>> one of
>> > // them is active: the image will have a size of 24px, and
>> the
>> > // aspect ratio will be kept
>> > // style_mark.pointRadius = 12;
>> > // style_mark.graphicHeight = 24;
>> > // style_mark.graphicWidth = 24;
>> >
>> > // if graphicWidth and graphicHeight are both set, the
>> aspect
>> > ratio
>> > // of the image will be ignored
>> > style_mark.graphicWidth = 24;
>> > style_mark.graphicHeight = 20;
>> > style_mark.graphicXOffset = -(style_mark.graphicWidth/2);
>> //
>> > this is the default value
>> > style_mark.graphicYOffset = -style_mark.graphicHeight;
>> > style_mark.externalGraphic = "../img/marker.png";
>> >
>> > var vectorLayer = new OpenLayers.Layer.Vector("Simple
>> Geometry",
>> > {style: layer_style});
>> > var point = OpenLayers.Geometry.Point;
>> > var ls = OpenLayers.Geometry.LineString;
>> > var vector = OpenLayers.Feature.Vector;
>> > var lines = [];
>> > var features = [];
>> >
>> > lines.push(new ls([new point(1,50), new
>> point(75,60)]));
>> > lines.push(new ls([new point(1,50), new
>> point(-60,-30)]));
>> > lines.push(new ls([new point(1,50), new
>> point(40,89)]));
>> > lines.push(new ls([new point(1,50), new
>> point(-150,-55)]));
>> > lines.push(new ls([new point(1,50), new
>> point(-30,-25)]));
>> > lines.push(new ls([new point(1,50), new
>> point(-5,-10)]));
>> >
>> > for(var i=0;i<lines.length;i++){
>> > features.push(new vector(lines[i], null,
>> style_green));
>> > }
>> >
>> > map.addLayer(vectorLayer);
>> > map.setCenter(new OpenLayers.LonLat(1,50), 5);
>> > vectorLayer.addFeatures(features);
>> > }
>> > </script>
>> >
>> > The map is initialized with a zoom level of 5. Once you get to 8 one of
>> the
>> > 6 lines disappears, leaving you with 5. Zoom level 9 removes all but
>> one
>> > line. Zoom level 10 removes all lines.
>> >
>> > I haven't traced the issue beyond drawFeature() in Vector.js. I've
>> tested
>> > the example in Firefox thus far but in my app I'm getting the same
>> behavior
>> > in ff and ie.
>> >
>> > Any ideas?
>> > --
>> > View this message in context:
>> http://www.nabble.com/Multiple-linestrings-originating-from-the-same-point-disappear-when-zooming-tp14952551p14952551.html
>> > Sent from the OpenLayers Users mailing list archive at Nabble.com.
>> >
>> > _______________________________________________
>> > Users mailing list
>> > Users at openlayers.org
>> > http://openlayers.org/mailman/listinfo/users
>> >
>>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
>
--
View this message in context: http://www.nabble.com/Multiple-linestrings-originating-from-the-same-point-disappear-when-zooming-tp14952551p15047347.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.
More information about the Users
mailing list