I don't think a lot of experimentation is required, I would implement it 
as such:

g = [view port width / cell size][view port height / cell size]

For each point, p:
   px <- convert p to view port PX
   px <- floor(px / cell size)
   if px in g is valid and g[px.x][px.y] not defined:
     g[px.x][px.y] <- p
 
for each cell in g, if defined:
    render g[x][y] as marker

I'd run this on zoom end, and move end (after pan completes, or after 
mouse button released)

The only configuration is the cell size, where 1 would mean there would 
be at most 1 marker for a given pixel, and the values increase from 
there. A higher value would mean better preformance, a lower would have 
a higher density of points.

- Chris

alts...@yahoo.com wrote:
> I think the proper solution would be to limit number of markers depending on 
> zoom level and visible map region. If you're at high zoom level and markers 
> are too close to each other, they will overlap and you do not really see 
> anything. Solution is to render not all markers but skip markers if distance 
> between them is too close (probably distance should be determined by 
> experimenting). When user zooms in, app should communicate with server and 
> request more markers for visible region. 
>
> opengts tracking system has the very same problem. I was going to implement 
> something like I explained above myself but it's quite low on my priority 
> list. But if you have the solution, I'd like to use it ;)
>
> Serg
>
>
>
> ----- Original Message ----
>   
>> From: willson <talentp1...@yahoo.com.cn>
>> To: users@openlayers.org
>> Sent: Tuesday, April 14, 2009 12:26:40 PM
>> Subject: Re: [OpenLayers-Users] How to add many(>400) markers to the map?
>>
>>
>>
>>
>> Hi,
>> if you were using Geoserver and wms, dynamic symbolizer could help you. 
>> Check the following out:
>>
>> http://blog.geoserver.org/2008/12/08/dynamic-symbolizers-part-1/
>>
>> - mika -
>>
>>
>> willson kirjoitti:
>>     
>>> Hi,
>>> try to search mailing list for strategies, performance. I have the same 
>>>       
>> problem not solved yet. It looks I will have to render at server site.
>>     
>>> Michal
>>>
>>>
>>> Hi everyone, this is the first post on this forum. I have search the 
>>> problem 
>>>       
>> on the forum, but find no anwser.
>>     
>>> What I need to solve is:  I have more than 400 points need to show on the 
>>> map, 
>>>       
>> these points query my db every 10 secs, and change their color according to 
>> the 
>> return value. 
>>     
>>> I use the openlayers.layer.marker to implement, but in ie the markers make 
>>> the 
>>>       
>> map so slow when zooming.
>>     
>>> Then I move to  openlayers.layer.vector, but it's even slower than marker.
>>> Any suggestion in such "Adding large and dynamically changed markers"  
>>>       
>> situation?
>>     
>>>
>>>
>>> hi, render in serverside(may be wms) can improve the performance much, but 
>>> how 
>>>       
>> to make markers dynamically change color? Any solution?
>>     
>>>  
>>>       
>> _______________________________________________
>> Users mailing list
>> Users@openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>
>>
>>
>> hi,
>> Yes, I am using geoserver and wms. I have look at the link, but it may be 
>> not 
>> the answer. Since the data in my db change frequently,  and the marker need 
>> to 
>> reflect these changes. For example , I have a table, and a column named 
>> "kpi", 
>> when kpi<0.01, the marker's color is green, else is red. It may be not an 
>> "sld" 
>> issue.
>>
>> -- 
>> View this message in context: 
>> http://n2.nabble.com/How-to-add-many%28%3E400%29-markers-to-the-map--tp2631715p2632376.html
>> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>>
>> _______________________________________________
>> Users mailing list
>> Users@openlayers.org
>> http://openlayers.org/mailman/listinfo/users
>>     
>
>
>
>       
> _______________________________________________
> Users mailing list
> Users@openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
>
>   


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



  I have try cluster strategy on vector layers that has 400 point feature, when 
zooming the map it is even slower than that hasn't used any strategy. May be 
calculate the cluster use too much cpu. 
In firefox, zooming time cost:
none strategy: < 1 secs (accpetable)
cluster strategy:  about 4 secs  (-_-!!)
-- 
View this message in context: 
http://n2.nabble.com/How-to-add-many%28%3E400%29-markers-to-the-map--tp2631715p2636795.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.

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

Reply via email to