ThinkGeo.com    |     Documentation    |     Premium Support

How to plot points on the map based on zoom level

I have n number of latitude and longitude coming from database and i have to plot them on map but as zoom level increases those points should increase i.e., for 1 zoom level there should be only one point on the map and those points should goes on increasing as we increase zoom level.Please send any solution if have iam badly struck up with this...








Although you don't give a lot of details of what those lat/long points represent and in what way the number of points should increase with the zoom level, it appears to me that you would need something like a ClusterPointStyle. We have a project in the Code Community that shows how you can cluster a bunch of points into one as you zoom out to avoid having to many points showing on the map which would make the map too busy. You can take a look at that project and see if this is something like that you need. If not, then please give a little more information what you are trying to do exactly. Thank you.

 

code.thinkgeo.com/projects/s...pointstyle

 



Hi Val, 
 The link you sent does’nt suit my requirement,Basically my application is a GPS tracking one in which device will keep on sending latitude and longitude of its location which are sent into database and are fetched on to map.so that lat/long are fetched from database for a particular date those points may be around 20 but at zero zoom level only one point should be plotted  on map as zoom level increases those points should increase the frequency of increasing the points should be based on zoom level i.e., for max zoom level all the 20 points should plotted.Finally what i want to know is can we invoke any javascript function or code behind function on changing of zoom level where i can plot those points.any help is greatly appreciated.iam badly struck ed up with this   


 Ok, I think I basically understand your situation now. You have a database (you don't say what type) with a table of records of points. That table has the columns Lat and Long. You want to retrieve the records from the table that are within the current extent of the map. You don't say that type of database you have but let say you have an Oledb database such as access. We have a project in the Code Community that shows how to basically create a layer based on that database. In the project "Oledb Point FeatureSource", we show an example a little bit similar to your case. We have an access database of major cities of the world. In the table, we have columns for name, longitude and latitude. we create a class inheriting from FeatureSource  (OledbPointFeatureSource) and we overwrite some methods for reading and retrieving the records according to the current extent of the map (GetFeaturesInsideBoundingBoxCore). In that method, we write the logic to retrieve the records according to the current extent. That can be calculated because you know the max and min values of the bounding box (the current extent of the map in lat/long) and the lat/long of each records. Please look at the code in that method and read the comments, you will understand better.    So, OledbFeatureSource has the logic from connecting to the database and retrieving the records.And, it is used by OledbFeatureLayer where you set the styles such as the point style, the labeling etc.

  Please, take a look at that project, I think that it might respond exactly to your case. If you are not using an access database, you can see how you can create your own FeatureSource adapted for the format of your database.


code.thinkgeo.com/projects/s...intfeature