sql >> Database teknologi >  >> RDS >> Sqlserver

Lagring af 'Point'-kolonnen fra ShapeFile

Jeg vil foreslå at gemme hele polygonen som en geometritype. Hvis/når du skal "konvertere" det til geografi, skal du bruge geografimetoderne STNumPoints og STPointN til at udtrække de enkelte punkter i rækkefølge og konvertere dem efter behov.

Apropos konverteringen, hvilket format er dine data i nu? Jeg kan ikke se lat/lang info der, men måske mangler jeg noget.

Edit:Her er en løsning, som jeg lige har kodet.

use tempdb;
create table tally (i int not null);
with 
    a as (select 1 as [i] union select 0),
    b as (select 1 as [i] from a as [a1] cross join a as [a2]),
    c as (select 1 as [i] from b as [a1] cross join b as [a2]),
    d as (select 1 as [i] from c as [a1] cross join c as [a2]),
    e as (select 1 as [i] from d as [a1] cross join d as [a2])
insert into tally
select row_number() over (order by i) from e
create unique clustered index [CI_Tally] on tally (i)

create table ace (g geometry)
insert into ace (g)
values (geometry::STGeomFromText(<<your polygon string here>>, 0));

select i, g.STPointN(t.i), g.STPointN(t.i).STAsText()
from ace as [a]
cross join tally as [t]
where t.i <= g.STNumPoints()



  1. Fejl under sikkerhedskopiering med mysqldump i mysql-kommandolinjen

  2. T-SQL - Indsæt data i overordnede og underordnede tabeller

  3. Ugyldigt dumpformat pgbackups:gendan selv med Dropbox-downloadlink

  4. Valgfri parametre i Mysql-lagrede procedurer