Avatar billede denden Nybegynder
18. juni 2014 - 16:08 Der er 1 kommentar

Spatial database.

Hej,
jeg har en "Punkter" SQL database som ligger på SQL Server 2008, som jeg gerne vil lave om til en spatial database.
Er der nogen der kan hjælpe mig med det?
Kan man opgradere en eksisterende database med nogle nye spatiale kolumner eller skal jeg have en hel ny spatial tabel? Eller måske en hel ny spatial database? Jeg har ingen erfaring med spatiale data.
Avatar billede montago Praktikant
30. juni 2014 - 10:28 #1
Det er meget nemt... din database er allerede spatial..

hvis dine punkter er er koordinater på verdenskortet skal du bruge datatypen Geography (kolonne) eller i et koordinatsystem: Geometry

Lad os sige at du i forvejen har 2 kolonner: Longtitude og Latitude

så skal du oprette en ny kolonne som hedder GeoCord af typen Geography (kan indeholder punkter, polygoner og streger)

Denne kan du så sætte til punkt-værdien ved at kalde:
UPDATE [TABLENAME]
SET GeoCoord = geography::Point(Latitude, Longitude, 4326)

4326 = jordkloden

du kan derefter oprette et Spatial index på din GeoCoord kolonne.
vælg Spatial / Tessellation Scheme = Geography Auto Grid
hvis dine koordinater findes på hele jordkloden.

Derefter kan du Query dine koordinater på 2 måder:

med en Polygon:

firkantet polygon:
DECLARE @poly geography = geography::STPolyFromText('POLYGON((
        ' + @minlon + ' ' + @maxlat + ',
        ' + @minlon + ' ' + @minlat + ',
        ' + @maxlon + ' ' + @minlat + ',
        ' + @maxlon + ' ' + @maxlat + ',
        ' + @minlon + ' ' + @maxlat + '
    ))', 4326);

    SELECT *
    FROM [TABLENAME]
    WHERE (@poly.STIntersects(GeoCoord) = 1)

eller
med et punkt hvor du leder efter den nærmeste:

DECLARE @center geography = geography::Point(@Lati, @Long, 4326)
SELECT        TOP 100 *
FROM        [TABLENAME] A
WHERE        @center.STDistance(A.GeoCoord) < @MaxDistKm * 1000
ORDER BY    @center.STDistance(A.GeoCoord)

-------------

Hvis du bruger koordinater i et Geometrisk system i stedet for Geoide, skal du bruge Geometry i stedet for Geography...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester