[gdal-dev] drawing line using OGR and mysql in mapserver

Chaitanya kumar CH chaitanya.ch at gmail.com
Tue Feb 28 07:38:17 EST 2012


Murat,

I see that your view,  lineview, doesn't give the expected geometry type
with ogrinfo. It is showing the datatype as Real. Check if the datatype of
geom is actually string/text.

On Tue, Feb 28, 2012 at 12:49 PM, Murat Beyhan <beyhan at deprem.gov.tr> wrote:

> Chaitanya,
>
>
> Map file which is try to draw line as follows
> are there any problem on the code
>
>  LAYER
>  NAME sfault1
>  CONNECTIONTYPE OGR
>  CONNECTION '<OGRVRTDataSource>
>  <OGRVRTLayer name="lineview">
>
> <SrcDataSource>MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,port=3306,tables=lineview</SrcDataSource>
>  <SrcLayer>lineview</SrcLayer>
>  <GeometryType>wkbLineString</GeometryType>
>  <GeometryField encoding="WKT" field="geom"/>
>  <LayerSRS>WGS84</LayerSRS>
>  <FID>eq_id</FID>
>  </OGRVRTLayer>
>  </OGRVRTDataSource>'
>  DATA sfault1
>  STATUS on
>  TYPE line
>  CLASS
>  NAME "Source Fault"
>  SYMBOL "cline"
>   SIZE 3
>  COLOR  0 0 255
>  END
>  END
>
> ogrinfo
> MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,port=3306
> sfault -summary
> INFO: Open of
> `MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,port=3306'
>      using driver `MySQL' successful.
>
> Layer name: sfault
> Geometry: None
> Feature Count: 1
> Layer SRS WKT:
> (unknown)
> eq_id: String (14.0)
> lat1: Real (7.4)
> lon1: Real (7.4)
> lat2: Real (7.4)
> lon2: Real (7.4)
>
> **************linewiew created by following sql statement:*************
>
>
>  create view lineview as select eq_id, "LINESTRING(" + lon1 + " " + lat1
>  + "," + lon2 + " " + lat2 + ")" as geom from sfault
>
> then
>
> [murat at localhost ~]$ ogrinfo
> MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,port=3306
> lineview -summary
> INFO: Open of
> `MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,port=3306'
>      using driver `MySQL' successful.
>
> Layer name: lineview
> Geometry: None
> Feature Count: 1
> Layer SRS WKT:
> (unknown)
> eq_id: String (14.0)
> geom: Real (0.0)
>
>
> as you see there is no problem to connect mysql and read information
> created mysql geometries from shape file also works here is an example
>
> [murat at localhost ~]$ ogrinfo
> MYSQL:testogr,user=root,password=mysqlpasswd,host=localhost,port=3306
> iller -summary
> INFO: Open of
> `MYSQL:testogr,user=root,password=mysqlpasswd,host=localhost,port=3306'
>      using driver `MySQL'
> successful.
>
> Layer name: iller
> Geometry: Polygon
> Feature Count: 83
> Extent: (26.026489, 35.820221) - (44.869179, 42.094917)
> Layer SRS WKT:
> GEOGCS["GCS_WGS_1984",
>    DATUM["WGS_1984",
>        SPHEROID["WGS_1984",6378137,298.257223563]],
>    PRIMEM["Greenwich",0],
>    UNIT["Degree",0.0174532925199433]]
> FID Column = OGR_FID
> Geometry Column = SHAPE2
> area: Real (13.6)
> perimeter: Real (13.6)
> illerdd_: Real (0.0)
> illerdd_id: Real (0.0)
> il_kod: Real (2.0)
> iladi: String (20.0)
> [murat at localhost ~]$
>
>
>
> Now I would like to learn what is wrong with my procedures... please
> help
>
>
>
> Murat
>
>
> On Tue, 2012-02-28 at 09:03 +0530, Chaitanya kumar CH wrote:
> > Murat,
> >
> >
> > Since it is MySQL it doesn't matter much how you store it. If you are
> > going to edit the end points later, storing them as points is
> > preferable, otherwise store them as wkt linestring geometries.
> >
> >
> > For your mapfile, first check if the extents are correct. Then check
> > if the mapfile works with a shapefile created from the geometries in
> > MySQL.
> >
> > On Tuesday, February 28, 2012, Murat BEYHAN wrote:
> >         Chaitanya,
> >
> >         thanks for your repply,
> >
> >         Actually I use ogr and mysql to draw point for example
> >         epicenter of
> >         earthquakes. But this is the first time to draw line which is
> >         stored in
> >         Mysql as a table. Actually there is no problem on drawing
> >         shape file of the
> >         line. But I would like to draw it using MySql and ogr
> >         functionality. So I
> >         have only start and end point of line and I store it on MySql
> >         database then
> >         I try to draw it considering id of the line by sql statement.
> >         Just I would lie to learn how to code it on Mapserver map file
> >         and how
> >         should I store line on database as a start and stop point of
> >         the line or as
> >         a geometry . Please help...
> >         thanks
> >
> >
> >
> >
> >         On Mon, 27 Feb 2012 22:09:52 +0530, Chaitanya kumar CH wrote
> >         > Murat,
> >         >
> >         > First check if your database is accessible using ogrinfo[1].
> >         > Then create a vrt file with the content you specified in the
> >         CONNECTION
> >         > field of the mapfile. Check if ogrinfo gives expected
> >         results with this
> >         > file.
> >         >
> >         > You probably have gdal executables if you are running
> >         mapserver.
> >         >
> >         > [1]: http://www.gdal.org/ogrinfo.html
> >         >
> >         > On Mon, Feb 27, 2012 at 12:48 PM, Murat Beyhan
> >         > <beyhan at deprem.gov.tr> wrote:
> >         >
> >         > > Dear all,
> >         > > I have shared this mail on Mapserver list but could not
> >         solve my
> >         > > problem.
> >         > > Still could not achieve to draw line using start and stop
> >         point line
> >         > > data stored in MySql database.
> >         > >
> >         > > I have tried Mr. Robert's solution but I have faced an
> >         error message.
> >         > >
> >         > >
> >         > > in map file
> >         > > I changed Geometrytype from wkbline to wkblinestring.
> >         > >
> >         > > LAYER
> >         > > NAME sfault1
> >         > > CONNECTIONTYPE OGR
> >         > > CONNECTION '<OGRVRTDataSource>
> >         > > <OGRVRTLayer name="lineview">
> >         > >
> >         > >
> >
> <SrcDataSource>MYSQL:dynamic,user=root,password=mysqlpasswd,host=localhost,po
> >         rt=3306,tables=lineview</SrcDataSource>
> >         > > <SrcLayer>lineview</SrcLayer>
> >         > > <GeometryType>wkbLineString</GeometryType>
> >         > > <GeometryField encoding="WKT" field="geom"/>
> >         > > <LayerSRS>WGS84</LayerSRS>
> >         > > <FID>eq_id</FID>
> >         > > </OGRVRTLayer>
> >         > > </OGRVRTDataSource>'
> >         > >  DATA sfault1
> >         > >  STATUS on
> >         > >  TYPE line
> >         > >  CLASS
> >         > >  NAME "Source Fault"
> >         > >  SYMBOL "cline"
> >         > >   SIZE 3
> >         > >  COLOR  0 0 255
> >         > >  END
> >         > > END
> >         > >
> >         > > in database
> >         > > I have two table
> >         > > one is sfault which store
> >         > >
> >         > > id lat1 lon1 lat2 lon2
> >         > >
> >         > > and another is lineview which is a view
> >         > > of this table created by following
> >         > >
> >         > > create view lineview as select eq_id, "LINESTRING(" + lon1
> >         + " " + lat1
> >         > > + "," + lon2 + " " + lat2 + ")" as geom from sfault
> >         > >
> >         > >
> >         > > there is an another issue,
> >         > >
> >         > > I have to draw line by considering id
> >         > > so in the map When I select one id, line should be belong
> >         to this id's
> >         > > information
> >         > > so I have to make a sql statement as follow instead of
> >         draw all line
> >         > > stored in database I have to draw just one line
> >         considering id
> >         > >
> >         > > something like this:
> >         > >
> >         > > select eq_id, geom from lineview where id like '%id%'
> >         > >
> >         > >
> >         > > please help about this subject....
> >         > >
> >         > >
> >         > > Regards....
> >         > >
> >         > >
> >         > >
> >         > > Murat
> >         > >
> >         > >
> >         > >
> >         > >
> >         > >
> >         > > --
> >         > > This message has been scanned for viruses and
> >         > > dangerous content by MailScanner, and is
> >         > > believed to be clean.
> >         > >
> >         > > _______________________________________________
> >         > > gdal-dev mailing list
> >         > > gdal-dev at lists.osgeo.org
> >         > > http://lists.osgeo.org/mailman/listinfo/gdal-dev
> >         > >
> >         >
> >         > --
> >         > Best regards,
> >         > Chaitanya kumar CH.
> >         >
> >         > +91-9494447584
> >         > 17.2416N 80.1426E
> >         >
> >         > --
> >         > This message has been scanned for viruses and
> >         > dangerous content by MailScanner, and is
> >         > believed to be clean.
> >
> >
> >         Murat Beyhan
> >         Jeofizik Yük. Müh.
> >         T.C.
> >         BAŞBAKANLIK
> >         Afet ve Acil Durum Yönetimi Başkanlığı
> >         Deprem Dairesi Başkanlığı
> >         Eskişehir Yolu 12. Km. Lodumlu/Ankara
> >         Tel:+90 (312) 2872680-1550
> >
> >
> >         --
> >         This message has been scanned for viruses and
> >         dangerous content by MailScanner, and is
> >         believed to be clean.
> >
> >
> >
> > --
> > Best regards,
> > Chaitanya kumar CH.
> >
> > +91-9494447584
> > 17.2416N 80.1426E
> >
> > --
> > This message has been scanned for viruses and
> > dangerous content by MailScanner, and is
> > believed to be clean.
>
>
>
> Murat BEYHAN
>
> Jeofizik Y.Müh.
> T.C. Başbakanlık
> Afet ve Acil Durum Yönetimi Başkanlığı
> Deprem Dairesi Başkanlığı
> Eskişehir Yolu 12. Km.
> Lodumlu/ANKARA
> Tel: 312 2872680-1556
> email:beyhan at deprem.gov.tr
>
>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>


-- 
Best regards,
Chaitanya kumar CH.

+91-9494447584
17.2416N 80.1426E
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20120228/2c1e7d77/attachment.html


More information about the gdal-dev mailing list