sql >> Database >  >> RDS >> Sqlserver

Kolom 'Punt' opslaan vanuit ShapeFile

Ik stel voor om de hele polygoon op te slaan als een geometrietype. Als/wanneer u het naar geografie moet "converteren", gebruikt u de geografiemethoden STNumPoints en STPointN om de afzonderlijke punten in volgorde te extraheren en om te zetten zoals van toepassing.

Over de conversie gesproken, in welk formaat zijn uw gegevens nu? Ik zie daar geen lat/long info, maar misschien mis ik iets.

Bewerken:hier is een oplossing die ik zojuist heb gecodeerd.

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. Recursieve CTE gebruiken met Ecto

  2. Hoe JSON-object op te slaan in PostgreSQL met behulp van JSONB-gegevenstype in tabel en PostgreSQL JDBC-stuurprogramma

  3. hoe B-tree indexering werkt in mysql

  4. Waarom wordt een connect by-expressie in een FOR-lus maar één keer uitgevoerd?