/[thuban]/branches/WIP-pyshapelib-bramz/Extensions/ogr/ogrstart.py
ViewVC logotype

Contents of /branches/WIP-pyshapelib-bramz/Extensions/ogr/ogrstart.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2435 - (show annotations)
Tue Dec 7 16:44:51 2004 UTC (20 years, 3 months ago) by nhueffme
Original Path: trunk/thuban/Extensions/ogr/ogrstart.py
File MIME type: text/x-python
File size: 2929 byte(s)
Adding a new extension to read shapefiles with ogr. It is planned to add other
vector formats.

1 # Copyright (c) 2004 by Intevation GmbH
2 # Authors:
3 # Nina Hüffmeyer <[email protected]>
4 #
5 # This program is free software under the GPL (>=v2)
6 # Read the file COPYING coming with Thuban for details.
7
8 __version__ = "$Revision$"
9 # $Source$
10 # $Id$
11
12 # Needed wx-toolkit classes
13 from wxPython.wx import wxFileDialog, wxOPEN, wxMULTIPLE, wxID_OK, \
14 wxOK, wxICON_HAND
15
16 # We need os.path
17 import os
18
19 # use _() already now for all strings that may later be translated
20 from Thuban import _
21
22 from Thuban.Model.layer import Layer
23
24 # Import ogr related classes
25 from Extensions.ogr import ogrshapes
26
27 def open_with_ogr(context):
28 '''Export data depending on the set properties.
29
30 This is the main export funcation.
31 '''
32 canvas = context.mainwindow.canvas
33 file = None
34 map = canvas.Map()
35
36 if hasattr(canvas, "export_path"):
37 export_path = canvas.export_path
38 else:
39 export_path="."
40 # Get the file to be opened
41 dlg = wxFileDialog(canvas, _("Select a data file"),
42 export_path, "",
43 _("Shapefiles (*.shp)") + "|*.shp;*.SHP|" +
44 _("All Files (*.*)") + "|*.*",
45 wxOPEN | wxMULTIPLE)
46
47 if dlg.ShowModal() == wxID_OK:
48 filenames = dlg.GetPaths()
49 for filename in filenames:
50 title = os.path.splitext(os.path.basename(filename))[0]
51 has_layers = map.HasLayers()
52 layername = title
53 try:
54 session = context.application.Session()
55 store = ogrshapes.OGRShapeStore(session, filename, layername)
56 session.AddShapeStore(store)
57 except IOError:
58 # the layer couldn't be opened
59 self.RunMessageBox(_("Add Layer"),
60 _("Can't open the file '%s'.")%filename)
61 else:
62 layer = Layer(title, store)
63 map.AddLayer(layer)
64 if not has_layers:
65 # if we're adding a layer to an empty map, fit the
66 # new map to the window
67 canvas.FitMapToWindow()
68 context.application.SetPath("data",filename)
69 dlg.Destroy()
70
71
72
73 # Thuban has named commands which can be registered in the central
74 # instance registry.
75 from Thuban.UI.command import registry, Command
76
77 # The instance of the main menu of the Thuban application
78 # See Thuban/UI/menu.py for the API of the Menu class
79 from Thuban.UI.mainwindow import main_menu
80
81 # create a new command and register it
82 registry.Add(Command('open_ogr_files', _('Open an ogr-file'), open_with_ogr,
83 helptext = _('Open a file supported from ogr')))
84
85 # find the ogr menu (create it a new if not found)
86 ogr_menu = main_menu.FindOrInsertMenu('ogr', _('OGR'))
87
88 # finally bind the new command with an entry in the extensions menu
89 ogr_menu.InsertItem('open_ogr_files')

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26