11 |
from math import log, ceil |
from math import log, ceil |
12 |
|
|
13 |
from Thuban import _ |
from Thuban import _ |
|
|
|
14 |
import shapelib, shptree |
import shapelib, shptree |
15 |
|
|
|
import gdal |
|
|
from gdalconst import GA_ReadOnly |
|
|
|
|
16 |
from messages import LAYER_PROJECTION_CHANGED, LAYER_VISIBILITY_CHANGED, \ |
from messages import LAYER_PROJECTION_CHANGED, LAYER_VISIBILITY_CHANGED, \ |
17 |
LAYER_CHANGED, LAYER_SHAPESTORE_REPLACED |
LAYER_CHANGED, LAYER_SHAPESTORE_REPLACED |
18 |
|
|
|
from color import Color |
|
|
|
|
19 |
import classification |
import classification |
20 |
|
|
21 |
|
from color import Color |
22 |
from base import TitledObject, Modifiable |
from base import TitledObject, Modifiable |
23 |
|
|
24 |
|
import resource |
25 |
|
|
26 |
|
|
27 |
class Shape: |
class Shape: |
28 |
|
|
382 |
return (_("Layer '%s'") % self.Title(), items) |
return (_("Layer '%s'") % self.Title(), items) |
383 |
|
|
384 |
|
|
385 |
|
if resource.has_gdal_support(): |
386 |
|
import gdal |
387 |
|
from gdalconst import GA_ReadOnly |
388 |
|
|
389 |
class RasterLayer(BaseLayer): |
class RasterLayer(BaseLayer): |
390 |
|
|
391 |
def __init__(self, title, filename, projection = None, visible = True): |
def __init__(self, title, filename, projection = None, visible = True): |
411 |
|
|
412 |
self.bbox = -1 |
self.bbox = -1 |
413 |
|
|
414 |
# |
if resource.has_gdal_support(): |
415 |
# temporarily open the file so that GDAL can test if it's valid. |
# |
416 |
# |
# temporarily open the file so that GDAL can test if it's valid. |
417 |
dataset = gdal.Open(self.filename, GA_ReadOnly) |
# |
418 |
|
dataset = gdal.Open(self.filename, GA_ReadOnly) |
419 |
|
|
420 |
if dataset is None: |
if dataset is None: |
421 |
raise IOError() |
raise IOError() |
422 |
|
|
423 |
self.UnsetModified() |
self.UnsetModified() |
424 |
|
|
427 |
|
|
428 |
If the layer has no shapes, return None. |
If the layer has no shapes, return None. |
429 |
""" |
""" |
430 |
|
if not resource.has_gdal_support(): |
431 |
|
return None |
432 |
|
|
433 |
if self.bbox == -1: |
if self.bbox == -1: |
434 |
dataset = gdal.Open(self.filename, GA_ReadOnly) |
dataset = gdal.Open(self.filename, GA_ReadOnly) |
435 |
if dataset is None: |
if dataset is None: |