From: William H. <wh...@nb...> - 2007-01-26 14:09:50
|
Hi: I'll take a stab at these. Please note my knowlege is incomplete and very much Linux based (some of what follows may not be correct for Windows). Wendell Turner wrote: >Some random questions about openev. >----------------------------------- >Q1) Coordinates > >When I load a geo-tiff map as a background and the put a vector >layer on top of that, the coordinate systems don't line up. > Do you mean the the shapes are in the wrong place or that the numbers seem wrong? > The >listgeo reports > > Corner Coordinates: > Upper Left ( -378189.280, 241388.855) ( 79d56'10.66"W, 40d12'14.56"N) > Lower Left ( -378189.280, -21423.842) ( 79d48' 1.19"W, 37d50'23.96"N) > Upper Right ( 326531.022, 241388.855) ( 71d40' 8.41"W, 40d13'25.47"N) > Lower Right ( 326531.022, -21423.842) ( 71d47'11.24"W, 37d51'32.88"N) > Center ( -25829.129, 109982.507) ( 75d47'54.49"W, 39d 5'55.60"N) > >and with the Steve Rawlinson's suggestions on the preferences, >the cursor window shows lat/lng coordinates, > Changing the preferences will change what is reported, but will not change the underlying stuff. If the geo-tiff uses eastings and northings (the big numbers), then OpenEv expects these numbers and uses them to decide where a pixel should be displayed. >but the vector layer >seems to be using those in the 1'st set above. > Correctly. If the vector layer didn't use these number, then the shapes would not show up in the same place as the map. > Is there a mapping >function to convert between the two? > > Yes. But the bindings from OpenEv to the reprojection stuff (especially for vectors) is not great. >----------------------------------- > >Q2) Startup > >What are the command line switches in openev that will, in effect, >to this: > openev -h > Edit -> Python Shell... > <load and execute program> > >----------------------------------- > > > As far as I can tell, this is not supported. (?) However it is simple to turn things around. Rather than launching python from OpenEv, launch OpenEv from python. Note this is what is done anyway when you enter openev -h (openev is just a script that sets up some libraries and paths, and then calls python on the file pymod/openev.py) The simplest way to start is to clone openev to application, clone openev.py to application.py, modify application to call python on application.py and modify application.py to call your application after it has set up the view. Send your application app as a parameter. If you add a new path to PYTHONPATH (when application is run) you can avoid putting stuff in $OPENEVHOME/python >Q3) How do you delete an item? > >I tried this in the interactive shell: > > >>> import gview > >>> gview.app.file_open_by_name('/home/wendell/flightgear/openev/Washington_77_North.tif') > >and the map shows up > > >>> sshapes=gview.GvShapes(shapefilename='/home/wendell/flightgear/openev/cvs/openev/html/developer_info/DEVCOURSE_vector_classes.shp') > >>> sshapes_layer=gview.GvShapesLayer(shapes=sshapes) > >>> cview=gview.app.sel_manager.get_active_view() > > I assume you did something like ">>> cview.add_layer(sshapes_layer) >and a vector layer is created & shows up in the Layers dialog > > >>> new_shape3=gview.GvShape(type=gview.GVSHAPE_AREA) > >>> new_shape3.set_node(-125000.0,113000.0,0.0,0) > >>> new_shape3.set_node(-125000.0,130800.0,0.0,1) > >>> new_shape3.set_node(-159200.0,130844.0,0.0,2) > >>> new_shape3.set_node(-159200.0,113000.0,0.0,3) > >>> new_shape3.set_node(-125000.0,113000.0,0.0,4) > >>> sshapes.append(new_shape3) > > > >and a rectangle shows up on the map (although not >the coordinate system that I was expecting). > >However, now I would line to erase it (actually, to >move it, but for now will just remove & redraw). > >Items that don't work include(!): > > >>> sshapes.destroy(new_shape3) > >>> new_shape3.destroy() > >>> sshapes.changed() > >What are the commands to remove one layer, or one item >on that layer? > > > To remove a shape you need its index. This is returned from append. Do something like >>>new_shape_index = sshapes.append(new_shape3) >>>sshapes.delete_shapes([new_shape_index]) Note the parameter is a list. You need the square brackets. >(Based on this question, where should I look to get >fundamental help? A book on OpenGL? Anything on GTK? >I'm excited that this 1) is in Python, 2) will >load my favorite geo-tiff file, and 3) can accept external >(UDP) input. I'm just a bit lost as where to begin >with it all) > > > Well, the best place to begin is with the various tutorials on the OpenEV page. (my guess is this is what you are doing). After that it is a matter of studying the python code in <openev>/pymod. The most important files are probably gvviewwindow.py and gview.py Examine the stuff in the tools directory, expecially redertest.py for examples of how to do things. You will probably need to look at gdal and proj4 (see the gdal home page). Work through the py.gtk tutorial http://www.pygtk.org/pygtktutorial/index.html Hope this helps. - William Hughes |