[Mapserver-users] Mapscript: SOLVED: Display points on the fly
Bjoern Platzen
bplatzen at sosnetz.de
Wed Jul 9 07:59:00 PDT 2003
Hi,
After trying some other Keywords on the listarchive I found a message,
that could help me...
I didn't recognize, that I'll have to add a new Feature to the shape...
This way, it works:
def _drawPoint(self, point):
myLayer = self.mymap.getLayerByName('onthefly')
newShape = mapscript.shapeObj(mapscript.MS_SHAPE_POINT)
part = mapscript.lineObj()
newPoint = mapscript.pointObj()
newPoint.x = point[0]
newPoint.y = point[1]
part.add(newPoint)
newShape.add(part);
myLayer.addFeature(newShape)
myLayer.status = mapscript.MS_ON
self.layers.append('onthefly')
If you think, it would make sense, we could put the map-class, that I'm
building into the Wiki. There is not much about PythonMapScript and I
think there may be more Newbies like me (who are not able to understand
100% of the perl-examples )... 8~)
Bye,
Bjoern
Am Mittwoch, 9. Juli 2003 16:01 schrieb Bjoern Platzen:
> Hi,
>
> I'm trying to display a point at the last klickpoint in the map, but
> it doesn't appear on the map. I know that this has been discussed on
> the list a few times, but all the Examples I found were in Perl and
> I'm not really a Perl-programmer...
>
> First of all, the mapObj (self.mymap) is defined and the image is
> prepared with
>
> self.myimage=self.mymap.prepareImage()
>
> My function to draw the point looks like that:
>
> def _drawPoint(self, point):
>
> pLayer = self.mymap.getLayerByName('onthefly')
> pLayer.status = mapscript.MS_ON
> newPoint = mapscript.pointObj()
> newPoint.x, newPoint.x = point[0], point[1]
> newPoint.draw(self.mymap, pLayer, self.myimage, 0, 'Klick')
> self.layers.append('onthefly')
>
> point is a tuple of the map-coordinates (eg. (2548085.3064984209,
> 5674031.5200534584).
>
> After _drawPoint, the function _drawLayers is called:
>
> def _drawLayers(self):
> for l in self.layers:
> ll = self.mymap.getLayerByName(l)
> str(ll)
> ll.draw(self.mymap, self.myimage)
>
> self.layers contains the layer-names
>
> After that, the image is saved with
>
> def makemap(self):
> self.mymap.drawLabelCache(self.myimage)
> out =
> self.myimage.saveImage(self.imgpath+self.outname,mapscript.MS_PNG,0,0
>,50) self.mapimg = self.imgpath+self.outname
>
> In my mapfile, Ive got a layer 'onthefly':
>
> LAYER
> NAME 'onthefly'
> TYPE POINT
> STATUS OFF
> CLASS
> Symbol 'phk'#Image-Symbol
> END
> END
>
> What am I missing?
>
> Bye, Bjoern
--
small office solutions
info at sosnetz.de - http://www.sosnetz.de
More information about the MapServer-users
mailing list