Skip to content

Commit 83faa0a

Browse files
committedJan 22, 2016
Changing SamplingFeatures model back to geoalchemy1 as discussed in ticket #24. Also changing connection string format to check for the exact name of driver on windows machines (ticket #26).
1 parent 6fc886a commit 83faa0a

File tree

3 files changed

+20
-18
lines changed

3 files changed

+20
-18
lines changed
 

‎Examples/Sample.py

+2-10
Original file line numberDiff line numberDiff line change
@@ -69,26 +69,18 @@
6969
print "Unable to demo getSamplingFeaturesByType", e
7070

7171

72-
7372
# Now get the SamplingFeature object for a SamplingFeature code
7473
try:
7574
sf = read.getSamplingFeatureByCode('USU-LBR-Mendon')
75+
print sf
7676
print "\n-------- Information about an individual SamplingFeature ---------"
7777
print "The following are some of the attributes of a SamplingFeature retrieved using getSamplingFeatureByCode(): \n"
7878
print "SamplingFeatureCode: " + sf.SamplingFeatureCode
7979
print "SamplingFeatureName: " + sf.SamplingFeatureName
8080
print "SamplingFeatureDescription: %s" % sf.SamplingFeatureDescription
8181
print "SamplingFeatureGeotypeCV: %s" % sf.SamplingFeatureGeotypeCV
82-
print "SamplingFeatureGeometry: %s" % sf.FeatureGeometry.geom_wkb
82+
print "SamplingFeatureGeometry: %s" % sf.FeatureGeometry
8383
print "Elevation_m: %s" % str(sf.Elevation_m)
84-
#print (
85-
# "The following are some of the attributes of a SamplingFeature retrieved using getSamplingFeatureByCode(): \n" +
86-
# "SamplingFeatureCode: " + sf.SamplingFeatureCode + "\n" +
87-
# "SamplingFeatureName: " + sf.SamplingFeatureName + "\n" +
88-
# "SamplingFeatureDescription: " + sf.SamplingFeatureDescription + "\n" +
89-
# "SamplingFeatureGeotypeCV: " + sf.SamplingFeatureGeotypeCV + "\n" +
90-
# "SamplingFeatureGeometry: " + sf.FeatureGeometry.geom_wkb + "\n" +
91-
# "Elevation_m: " + str(sf.Elevation_m))
9284
except Exception as e:
9385
print "Unable to demo getSamplingFeatureByCode: ", e
9486

‎odm2api/ODM2/models.py

+13-7
Original file line numberDiff line numberDiff line change
@@ -559,17 +559,23 @@ class SamplingFeatures(Base):
559559
index=True)
560560
Elevation_m = Column('elevation_m', Float(53))
561561
ElevationDatumCV = Column('elevationdatumcv', ForeignKey(CVElevationDatum.Name), index=True)
562-
FeatureGeometry = Column('featuregeometry', Geometry) # Geoalchemy 2
563-
#FeatureGeometry = GeometryColumn('featuregeometry', Geometry) #Geoalchemy 1, #wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None
562+
#FeatureGeometry = Column('featuregeometry', Geometry) # Geoalchemy 2
563+
FeatureGeometry = GeometryColumn('featuregeometry', Geometry) #Geoalchemy 1, #wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None
564564
# FeatureGeometry = Column('featuregeometry', BLOB)# custom geometry queries
565565

566566

567567
def __repr__(self):
568-
#from shapely import wkb
569-
#return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (
570-
# self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription,
571-
# self.Elevation_m, wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt if self.FeatureGeometry is not None else None)#self.FeatureGeometry)
572-
return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription, self.Elevation_m, self.FeatureGeometry)
568+
from shapely import wkb
569+
geom = None
570+
if hasattr(self.FeatureGeometry, 'geom_wkt'):
571+
geom = wkb.loads(str(self.FeatureGeometry.geom_wkb)).wkt
572+
else:
573+
geom = self.FeatureGeometry
574+
575+
return "<SamplingFeatures('%s', '%s', '%s', '%s', '%s')>" % (
576+
self.SamplingFeatureCode, self.SamplingFeatureName, self.SamplingFeatureDescription,
577+
self.Elevation_m, geom)
578+
573579
GeometryDDL(SamplingFeatures.__table__) #Geoalchemy1
574580

575581
class FeatureActions(Base):

‎odm2api/ODMconnection.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,11 @@ def __buildConnectionString(self, conn_dict):
196196
else:
197197
if conn_dict['engine'] == 'mssql':
198198
driver = "pyodbc"
199-
self._connection_format = "%s+%s://%s:%s@%s/%s?driver=SQL+Server+Native+Client+10.0"
199+
sources = pyodbc.dataSources()
200+
driverName = sources['SQL Server']
201+
driverName = driverName.strip().replace(' ', '+')
202+
#self._connection_format = "%s+%s://%s:%s@%s/%s?driver=SQL+Server+Native+Client+10.0"
203+
self._connection_format = "%s+%s://%s:%s@%s/%s?driver=" + driverName
200204

201205
elif conn_dict['engine'] == 'mysql':
202206
driver = "pymysql"

0 commit comments

Comments
 (0)
Please sign in to comment.