[GRASS-SVN] r34155 - grass/trunk/scripts/v.out.gps
svn_grass at osgeo.org
svn_grass at osgeo.org
Tue Nov 4 03:36:12 EST 2008
Author: hamish
Date: 2008-11-04 03:36:12 -0500 (Tue, 04 Nov 2008)
New Revision: 34155
Modified:
grass/trunk/scripts/v.out.gps/v.out.gps
Log:
better connect DB to export map (merge from devbr6)
Modified: grass/trunk/scripts/v.out.gps/v.out.gps
===================================================================
--- grass/trunk/scripts/v.out.gps/v.out.gps 2008-11-04 07:52:05 UTC (rev 34154)
+++ grass/trunk/scripts/v.out.gps/v.out.gps 2008-11-04 08:36:12 UTC (rev 34155)
@@ -207,8 +207,8 @@
GIS_OPT_TYPE="line"
fi
fi
-
+
# SQL extract if needed
if [ -n "$GIS_OPT_WHERE" ] ; then
g.message -v "Extracting data ..."
@@ -232,6 +232,8 @@
INMAP="tmp_vogb_extr_$$"
else
+# g.copy "$GIS_OPT_INPUT,tmp_vogb_extr_$$" # to get a copy of DB into local mapset
+# INMAP="tmp_vogb_extr_$$"
INMAP="$GIS_OPT_INPUT"
fi
@@ -263,20 +265,29 @@
# don't v.db.connect directly as source table will be removed with
-# temporary map in that case. So we copy it first but this fails when
-# the map (ie table) is in another mapset. ?
-db.copy from_table="$INMAP" to_table="tmp_vogb_epsg4326_$$"
-if [ $? -ne 0 ] ; then
- g.message -e "Error copying temporary DB"
- cleanup
- exit 1
-fi
+# temporary map in that case. So we make a temp copy of it to work with.
+DB_PARAMS=`v.db.connect -g "$INMAP" 2> /dev/null | grep "^$GIS_OPT_LAYER "`
+if [ -n "$DB_PARAMS" ] ; then
+ DB_TABLE=`echo "$DB_PARAMS" | cut -f2 -d' '`
+ DB_KEY=`echo "$DB_PARAMS" | cut -f3 -d' '`
+ DB_DATABASE=`echo "$DB_PARAMS" | cut -f4 -d' '`
+ DB_DRIVER=`echo "$DB_PARAMS" | cut -f5 -d' '`
-v.db.connect map="tmp_vogb_epsg4326_$$" table="tmp_vogb_epsg4326_$$" --quiet
-if [ $? -ne 0 ] ; then
- g.message -e "Error reconnecting temporary DB"
- cleanup
- exit 1
+ db.copy from_driver="$DB_DRIVER" from_database="$DB_DATABASE" \
+ from_table="$DB_TABLE" to_table="tmp_vogb_epsg4326_$$"
+
+ if [ $? -ne 0 ] ; then
+ g.message -e "Error copying temporary DB"
+ cleanup
+ exit 1
+ fi
+
+ v.db.connect map="tmp_vogb_epsg4326_$$" table="tmp_vogb_epsg4326_$$" --quiet
+ if [ $? -ne 0 ] ; then
+ g.message -e "Error reconnecting temporary DB"
+ cleanup
+ exit 1
+ fi
fi
@@ -290,16 +301,16 @@
fi
# BUG: cat is being reported as evelation and attribute output is skipped.
-# (v.out.ogr DB reading bug)
+# (v.out.ogr DB reading or ->OGR GPX driver bug ?)
# v.out.ogr -> shapefile -> GPX works, but we try to avoid that as it's
# lossy. Also that would allow ogr2ogr -a_srs $IN_PROJ -t_srs EPSG:4326
-# so skip m.proj pains.. if that is done ogr2ogr -a_srs MUST HAVE +wktext
+# so skip m.proj pains.. if that is done ogr2ogr -s_srs MUST HAVE +wktext
# with PROJ.4 terms or else the +nadgrids will be ignored! best to feed
# it IN_PROJ="`g.proj -jf` +wktext" in that case.
g.message -v "Exporting data ..."
-v.out.ogr in=tmp_vogb_epsg4326_$$ dsn="$TMP.gpx" type="$GIS_OPT_TYPE" \
+v.out.ogr in="tmp_vogb_epsg4326_$$" dsn="$TMP.gpx" type="$GIS_OPT_TYPE" \
format=GPX ${LINETYPE} dsco="GPX_USE_EXTENSIONS=YES" --quiet
if [ $? -ne 0 ] ; then
@@ -310,7 +321,7 @@
if [ "$GIS_OPT_FORMAT" = gpx ] ; then
# short circuit, we have what we came for.
- mv "$TMP.gpx" "$GIS_OPT_OUTPUT"
+ mv -f "$TMP.gpx" "$GIS_OPT_OUTPUT"
cleanup
g.message -v "Fast exit."
exit 0
More information about the grass-commit
mailing list