Hi Shipra, we've just finished a (tiled) map based on OpenStreetmap-data and had about the same problems as you mention. I thought it would be helpfull to others to share some experiences:
Those labeling doubles/partials are 'known' problems, of which there are a lot of solutions. But it's not very obvious, because there are so much variables: type of geometries, tools used, label positions, edges etc So there are a lot of buttons you can turn on to get the best result. It's part of the game to fiddle with those :-) Assuming you use some 'tiling'-mechanism, for example using Mapserver and Tilecache, there are the following issues: - raster vs vector data The problems you mention only appear if you render vector data (just to be clear). The actual problem is LABELING. It has also to be clear that because of tiling you cut up your big-image in rather small mini-maps. The problem is that a renderer/mapserver will use only the information it has for current tile/mapimage to determine which labels to draw. This makes these 'edgy problems'. DOUBLES and PARTIALS: - labeling points versus area/polygons and automatic labeling It good to realize yourself that there is a difference between labeling point geometries versus area/polygons. With the latter, you renderer (eg mapserver) is free to choose WHERE to put the label. It searches for the best position based on eg: available space around (edges), other labels in the neighborhood. The same for lines. With points however the renderer does not have that much 'freedom'. If you use POSITION auto, it does have some, but if you lock it by giving POSITION the value 'cc', you force the label on one place. It's this knowledge you can use to choose for example that you will use a point-layer for you labels (eg to generate a special point-label-layer from an polygon layer by generating a layer with the centerpoints of the polygons). In the case of using tiling: to 'fix' your (point)-labels by using cc for POSITION. But this is not enough to be sure there will be no doubles in your tiles. If you do not force the renderer to only draw whole labels (on the edges), you can end up with a partial label on the edge because the point is laying on the edge of one tile (but on this tile the label is only drawn half) and on the neighborhood tile nothing is drawn, because this tile is not aware of the point (and it's label). So use PARTIALS=false to be sure you will end up with partials on tile edges. Another option you can use here is the "labelcache_map_edge_buffer" "-100" configuration (in the metabuffer of the MAP FILE NOT THE LAYER!) This makes that there will be a label-less border of 100 pixels in your map-image/tile ... But what about those points laying on just 2 pixels from the edge of a tile? These will never be drawn then. That's where the Tilecache configuration 'metaBuffer' kicks in. If you use the metaTile=true option for tilecache, tilecache will not do 'tile by tile'-requests, but will request for example a 'metaTile' of 5x5 tiles at once. If you now use the option metaBuffer=100 for your metaTiles, it will request big tiles with a 100 pixel wide buffer around it. And just cut of this 100 pixel wide labelless(!) buffer for you, and all labels will be shown :-) be aware of the option FORCE for you labels also. While it's not nice to have overlapping labels, you sometimes are 'forced' to use FORCE just because otherwise there will not be enough labels in your tiles... But be careful with 'FORCE true'... - multiple labels / too much label for line/polygons The labeling of lines and polygons is very different from the points, because mapserver has so much freedom to place the labels along the line or in the (big) polygons. Because the map is divided in so much tiles/mini-maps, you will end up with too much labels for the same lines. This is why you really have to use metaTiling for your tilecache! Otherwise the labeling-buffer/mindistance/featuresize is determined for one minitile ... which is not what you want probably... So, be sure to put on metatiling, and fiddle around with the following label options then: mindistance (do no draw the same label within certain distance minfeaturesize (only put labels on features of a certain size) buffer (do not draw labels in a certain buffer around current) partials (do or do not draw partials (on the edges) Sometimes you have to split up the labeling in different scales, because at higher levels you want less labels to be seen etc. Here some other links: http://mapserver.gis.umn.edu/docs/reference/mapfile the label part: http://mapserver.gis.umn.edu/docs/reference/mapfile/label http://biometry.gis.umn.edu/tutorial/ has a nice part about labeling: http://biometry.gis.umn.edu/tutorial/example1-4.html And the config names: MAPSERVER: web metadata ... "labelcache_map_edge_buffer" "-100" end end .. ... class ... Label ... partials (false or true) buffer (4 number) force (false or true) position (cc .. ) mindistance (100 ) minfeaturesize (50) (angle) end .. TILECACHE: [layerx] metaTile=true metaBuffer=10 Mmm, ended up with al long email, hope this helps for somebody. Maybe it's an idea to put this kind of info in a nice (illustrated) wiki article? Regards and fiddle around, Richard Duivenvoorde shipra wrote: > Hi Steve > > Your Application is nice... > I have a query.... > I also made an application in openlayers. > So want to know din't u have any problems with labeling coz I had many of > labels got cut bcoz of tiles > also the labels were repeated in tiles. > > Wat did u use for that? > Pls reply.. > > Regards, > Shipra > > -------------------------------------------------- > From: "Steve Lime" <[EMAIL PROTECTED]> > Sent: Thursday, April 17, 2008 2:06 AM > To: <users@openlayers.org> > Subject: [OpenLayers-Users] Sample OL site... > >> Hi all: Figured I'd share an OL powered site we've got going. >> >> http://www.dnr.state.mn.us/maps/compass.html >> >> It's a simple viewer but OL was perfect for this type of thing for us. >> It's using: >> >> - OpenLayers 2.5 >> - MapServer 5.1 (development version, AGG backend) >> - TileCache 2 (mod_python, WMS layer) >> >> We still see the odd clipping problem with road shields, even with >> metatiling on but for the most it >> works well. >> >> Steve >> >> _______________________________________________ >> 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