[Qgis-user] OS Mastermap, SQL Server and QGIS

Steven Campbell s.campbell at poole.gov.uk
Mon Jul 1 03:37:57 PDT 2013


Hi Nathan

 

Thanks for this, I've added the table and will see how I get on.

 

Thanks again

 

Steve.

 

From: Nathan Woodrow [mailto:madmanwoo at gmail.com] 
Sent: 01 July 2013 11:23
To: Steven Campbell
Cc: qgis-user
Subject: Re: [Qgis-user] OS Mastermap, SQL Server and QGIS

 

Hey Steven,

 

I didn't know about the sys,spatial_index_tesellations table.  That
might be better to use as it doesn't require the user to do any extra
work.  Ignore the min_x, min_y stuff I will update the code to use this
new table and let you know once it's done.

 

However creating the geometry columns table isn't a bad idea anyway as
it will let QGIS find the layers quicker when using the browser, or list
layers dialog.

 

Here is a create script:

 

CREATE TABLE [dbo].[geometry_columns](

            [f_table_catalog] [varchar](128) NOT NULL,

            [f_table_schema] [varchar](128) NOT NULL,

            [f_table_name] [varchar](256) NOT NULL,

            [f_geometry_column] [varchar](256) NOT NULL,

            [coord_dimension] [int] NOT NULL,

            [srid] [int] NOT NULL,

            [geometry_type] [varchar](30) NOT NULL,

 CONSTRAINT [geometry_columns_pk] PRIMARY KEY CLUSTERED 

(

            [f_table_catalog] ASC,

            [f_table_schema] ASC,

            [f_table_name] ASC,

            [f_geometry_column] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

 

This is what mine looks like:

 

http://i.imgur.com/sMWyvTk.png

 

- Nathan

 

 

On Mon, Jul 1, 2013 at 8:03 PM, Steven Campbell
<s.campbell at poole.gov.uk> wrote:

Hi Nathan

 

Thanks for this info, excuse me for sounding a bit thick here, but as I
can't find any Geometry_columns table in my SQL database, I'm guessing I
need to create one as QGIS uses this table to get the extents of the
data in SQL, and if it doesn't exist it works them out on the fly?

 

Do I have to use ogr2ogr to create this table or can I build the table
and put in the information myself - or can I use the
sys.spatial_index_tesellations table instead as this contains my
bounding boxes for x and y?

 

Thanks

 

Steve

 

From: Nathan Woodrow [mailto:madmanwoo at gmail.com] 
Sent: 01 July 2013 00:11
To: Steven Campbell
Cc: qgis-user
Subject: Re: [Qgis-user] OS Mastermap, SQL Server and QGIS

 

Hey Steven,

 

There is a trick you can do to get your layers to load a bit quicker.
The thing that takes the most time when loading a layer is calculating
the extents, this is done each time the layer is opened and for large
layers this can have a pretty big performance hit.  So to fix that issue
I have made the SQL driver search for a  min_x, min_y, max_x, max_y in
the geometry_columns table in order to just read the extent so there is
no on the fly calculation needed when the layer is loaded.

 

So your geometry_columns table should look like this:

 

 
 
[f_table_catalog] [varchar](128) NOT NULL,


 
 
 
[f_table_schema] [varchar](128) NOT NULL,


 
 
 
[f_table_name] [varchar](256) NOT NULL,


 
 
 
[f_geometry_column] [varchar](256) NOT NULL,


 
 
 
[coord_dimension] [int] NOT NULL,


 
 
 
[srid] [int] NOT NULL,


 
 
 
[geometry_type] [varchar](30) NOT NULL,


 
 
 
[min_x] [double] NULL,


 
 
 
[min_y] [double] NULL,


 
 
 
[max_x] [double] NULL,


 
 
 
[max_y] [double] NULL


 
 
 
 
 
 
The last four columns are the new ones and you can calculate a rough
extents to go in the table like:
 
 
 
 
 
 
 
 
select min([ogr_geometry].STPointN(1).STX), 


 
 
 
       min([ogr_geometry].STPointN(1).STY), 


 
 
 
       max([ogr_geometry].STPointN(1).STX), 


 
 
 
       max([ogr_geometry].STPointN(1).STY)


 
 
 
FROM [TABLE]
 
 
 
An entry in the table might look like:
 
 
 
 
http://i.imgur.com/gq8DayI.png
 
 
 
Note: This will only work in the current dev version of QGIS.
 
 
 
- Nathan



 

 

On Sat, Jun 29, 2013 at 12:00 AM, Steven Campbell
<s.campbell at poole.gov.uk> wrote:

Hi

 

Does anyone else have significant time delays when trying to open large
datasets from a SQL database in QGIS? I have uploaded my Ordnance survey
MasterMap data (coverage is the size of an average English County) and
although the initial connection to identify the table is very quick, the
loading of the table (even when zoomed in to a very big scale (i.e.
1:100) it takes a very long time to open. Once opened the speed is very
quick, but getting it to open takes a lot of patience as the application
appears to hang.

 

On a slightly related topic, if I have connected to one MSSQL database,
QGIS then struggles if I try to connect to an additional database, again
it just appears to hang for a considerable period of time (30 minutes or
more at times), it seems odd especially as the connection to the first
SQL database is almost instant....

 

Any suggestions as to how I can improve this speed would be greatly
appreciated.

 

Thanks

 

Steve Campbell

GIS Manager

Corporate Strategy and Communications

Borough of Poole | Civic Centre | Poole BH15 2RU

Tel: 01202 633 362

Email: s.campbell at poole.gov.uk

Website:www.boroughofpoole.com <http://www.boroughofpoole.com/> 

Think Green! Please Recycle

 

DISCLAIMER:
This email and any files transmitted with it may be confidential,
legally privileged and protected in law and are intended solely for the
use of the individual to whom it is addressed. The copyright in all
documentation is the property of the Borough of Poole and this email and
any documentation must not be copied or used other than as strictly
necessary for the purpose of this email, without prior written consent
which may be subject to conditions. Any view or opinions presented are
solely those of the author and do not necessarily represent those of the
Borough of Poole. The Borough of Poole reserves the right to inspect
incoming and outgoing emails. If you have received this email in error
please contact the sender by return and confirm that its contents have
been destroyed. Telephone enquiries should be directed to the Borough
switchboard on 01202 633633.


_______________________________________________
Qgis-user mailing list
Qgis-user at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-user

 

DISCLAIMER:
This email and any files transmitted with it may be confidential,
legally privileged and protected in law and are intended solely for the
use of the individual to whom it is addressed. The copyright in all
documentation is the property of the Borough of Poole and this email and
any documentation must not be copied or used other than as strictly
necessary for the purpose of this email, without prior written consent
which may be subject to conditions. Any view or opinions presented are
solely those of the author and do not necessarily represent those of the
Borough of Poole. The Borough of Poole reserves the right to inspect
incoming and outgoing emails. If you have received this email in error
please contact the sender by return and confirm that its contents have
been destroyed. Telephone enquiries should be directed to the Borough
switchboard on 01202 633633.

 



DISCLAIMER:
This email and any files transmitted with it may be confidential, legally privileged and protected in law and are intended solely for the use of the individual to whom it is addressed. The copyright in all documentation is the property of the Borough of Poole and this email and any documentation must not be copied or used other than as strictly necessary for the purpose of this email, without prior written consent which may be subject to conditions. Any view or opinions presented are solely those of the author and do not necessarily represent those of the Borough of Poole. The Borough of Poole reserves the right to inspect incoming and outgoing emails. If you have received this email in error please contact the sender by return and confirm that its contents have been destroyed. Telephone enquiries should be directed to the Borough switchboard on 01202 633633.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20130701/2032267d/attachment.html>


More information about the Qgis-user mailing list