Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie man den SQL Server Geography-Datentyp sinnvoll macht

Der Datentyp Geographie von SQL Server unterscheidet sich von anderen Typen, einfach weil Sie ihn nicht oft verwenden. Es ist nicht wie varchar , int , schwimmen , oder DateTime in jeder Tabelle vorhanden, zumindest in einem Typ.

Benötigen wir den SQL Server Geography-Datentyp? Um etwas Neues zu verstehen, müssen wir drei grundlegende Fragen beantworten:

Welche Probleme werden gelöst ? Die Antwort liegt in Anwendungsfällen.
Welche Dinge gehören zum Studium dazu? Sie lernen einige grundlegende Definitionen und Akronyme kennen. Ich habe nur die wichtigen Sachen gesammelt, damit es dich nicht langweilt.
Gibt es Beispiele zur weiteren Erläuterung der Funktionsweise und der einfachen Implementierung? Unsere Art lebt mit Code. Wir essen und schlafen damit. Daher werden wir in diesem Beitrag Beispielcodes haben.

Es ist kein Beitrag, um Sie mit technischem Jargon und Syntax so zu stopfen, wie sie sind. Sie können loslegen, sobald Sie die Grundlagen des geografischen Datentyps von SQL Server geknackt haben. Klingt gut?

Tauchen wir ein.

Anwendungsfälle von Geodaten

Beginnen wir mit dem offensichtlichsten und obersten – dem allgemeinen Begriff „Geodaten“.

Räumliche oder geospatiale Daten sind die Daten zu Objekten, Ereignissen oder Phänomenen, die sich auf der Erdoberfläche befinden. Mit anderen Worten, es sind Informationen, die auf eine Karte gestopft sind. Denken Sie zum Beispiel an Google Maps oder Waze.

Aber es gibt noch mehr:

  • Suchen Sie einen Lieferwagen des Unternehmens über eine Website oder eine mobile App.
  • Suchen Sie interessante Orte wie Restaurants, Banken oder Krankenhäuser in der Nähe.
  • Analysieren Sie Daten zu Erdbeben, der Ausbreitung von COVID-19, Überschwemmungen oder Straßenverkehr – Geoanalyse.

Und so weiter.

Mehrere Datenbankplattformen beschäftigen sich mit räumlichen Daten, aber wir konzentrieren uns auf nur eine.

Was ist der geografische Datentyp von SQL Server?

Microsoft hat die Datentypen Geographie und Geometrie in SQL Server 2008 hinzugefügt. Geographie stellt Daten in einem Koordinatensystem rund um die Erde dar. Es ist auch als .Net CLR-Datentyp implementiert, der Eigenschaften wie Längen- oder Breitengrad hat.

Dieser Beitrag konzentriert sich auf den geografischen Datentyp und seine Anwendungen, insbesondere in:

  • Points of Interest, wie die Suche nach Restaurants in der Nähe und eine Beispielabfrage.
  • Georäumliche Analyse.

Da es sich um einen Datentyp handelt, erstellen wir eine Tabelle. Dann definieren wir eine oder mehrere Spalten als Geografie. Und schließlich erstellen wir einen räumlichen Index für diese Spalten.

Wenn Sie eine Tabelle mit einer geografischen Spalte abfragen, ist die Ausgabe binär.

Lassen Sie uns versuchen, ein einfaches Beispiel unten auszuführen:

SELECT 
 [CityID]
,[CityName]
,[GeoLocation]
FROM [Cities]

Abbildung 1 unten zeigt die Ergebnismenge:

Wenn ein Ergebnissatz räumliche Daten enthält, wird ein Spatial Results Registerkarte wird ebenfalls angezeigt. Abbildung 2 veranschaulicht die räumlichen Ergebnisse der obigen Abfrage:

Nun, was ist gerade passiert?

Es scheint, dass das Anzeigen der Ergebnismenge alles andere als einfach und nützlich ist, ganz zu schweigen von den Punkten entlang der Gitterlinien. Ich habe Ihnen schon beim ersten SELECT gezeigt, was Sie erwartet Erklärung zu geografischen Datentypen. Der nächste Abschnitt wird eine viel bessere Perspektive entfalten.

SQL Server Geography-Instanzen erstellen

Sie benötigen eine Instanz, um mit Daten mit dem SQL Server-Datentyp „geography“ zu arbeiten. Es gibt vier Möglichkeiten, eine geografische Instanz zu erstellen:

  1. aus einer anderen geografischen Instanz
  2. unter Verwendung eines bekannten Textes (WKT)
  3. unter Verwendung einer bekannten Binärdatei (WKB)
  4. aus einer Texteingabe in Geography Markup Language (GML)

Konzentrieren wir uns auf die Verwendung eines bekannten Textes.

Verwenden von bekanntem Text (WKT)

Diese Repräsentation basiert auf dem Open Geospatial Consortium (OGC). Es ermöglicht den Austausch geografischer Daten in Textform.

Nehmen Sie unser vorheriges Beispiel, aber anstelle einer binären Ausgabe konvertieren wir es in einen String:

SELECT 
 [CityID]
,[CityName]
,[GeoLocation].ToString() AS GeoLocationString
FROM [Cities]

Beachten Sie den ToString () Methode. Es konvertiert die Ausgabe in den Zeichenfolgenwert. Sie können die Ausgabe in Abbildung 3 unten sehen:

Besser? Nun, es sind immer noch nur Zahlen. Aber was ist, wenn ich Ihnen sage, dass diese Zahlen die Breiten- und Längengrade dieser Städte sind? Es macht mehr Sinn, oder?

Es ist ein bekannter Text (WKT), und er ist wichtig, wenn Sie die Daten in die Spalte einfügen. Dazu später mehr. Jetzt müssen wir noch etwas untersuchen.

Raumbezugskennung (SRID)

Abgesehen von einem bekannten Text hat jede geografische Instanz einen Spatial Reference Identifier (SRID). Es ist notwendig, um geografische Instanzen (Orte oder Punkte) in einer Erdumrundungskartierung zu messen.

Die am weitesten verbreitete Maßeinheit ist Meter oder Quadratmeter, bezeichnet durch die SRID 4326. Alle anderen SRIDs finden Sie in sys.spatial_reference_systems .

Ihre geografischen Spalten können unterschiedliche SRIDs haben. Beachten Sie dies, wenn Sie Operationen an zwei geography-Instanzen ausführen, wie z. B. das Messen ihrer Entfernungen. Beide Instanzen sollten die gleiche SRID haben, oder es gibt Ihnen NULL zurück .

STGeomFromText

Nachdem Sie sich mit WKT und SRID vertraut gemacht haben, ist zum Erstellen einer geografischen Instanz eine Methode namens STGeomFromText erforderlich . Es hat die folgende Syntax:

Geografie::STGeomFromText( , SRID )

Beispiel:

INSERT INTO Cities
(CityName, GeoLocation)
VALUES
('CITY OF MANILA',geography::STGeomFromText('POINT(14.6077 120.98202)', 4326))

Sehen wir uns die Parameterwerte an:

‘POINT(14.6077 120.98202)’ – ein bekannter Text eines Punktes in der Karte mit dem Breitengrad 14,6077 und dem Längengrad 120,98202. Dies entspricht Manila, der Hauptstadt der Philippinen.

4326 – die Raumbezugskennung

Lassen Sie uns gleich zu den Beispielen springen und dieses neue Juwel, das wir gefunden haben, verwenden.

Praxisbeispiele für SQL Server Geography-Datentypen

Wir werden zwei gängige Anwendungen haben, um Sie mit geografischen Daten vertraut zu machen.

Entfernungen berechnen (nächster Nachbar)

Eine übliche Anwendung in geografischen räumlichen Daten wird als Nächster-Nachbar-Abfrage bezeichnet. Bei dieser Abfrage möchten Sie wissen, wie weit oder nah etwas von einem anderen Objekt oder Ort entfernt ist.

In meinem Beitrag über den SQL-Graphen habe ich beschrieben, wie ein Kunde vom aktuellen Standort aus die nahe gelegenen Restaurants finden kann. Lassen Sie uns noch einmal auf dieses Beispiel verweisen:

-- Query the location of the customer
DECLARE @deliveryLocation GEOGRAPHY

SELECT @deliveryLocation = Locations.GeoLocation
FROM Customers, willReceiveIn, Locations
WHERE MATCH(Customers-(willReceiveIn)->Locations)
AND Customers.CustomerID = 3

-- Query the restaurants within 1000 meters from the location of the customer
SELECT
 Restaurants.Name
,Restaurants.Description
,Restaurants.Opening
,Restaurants.Closing
,Locations.Description
,ROUND(Locations.GeoLocation.STDistance(@deliveryLocation),2) AS Distance
FROM Restaurants, isLocated, Locations
WHERE MATCH(Restaurants-(isLocated)->Locations)
AND locations.GeoLocation.STDistance(@deliveryLocation) <= 1000
ORDER BY Distance

Das Geheimnis dieser Abfrage des nächsten Nachbarn ist STDistance (). Es werden zwei geografische Standorte benötigt:der eine für den Kunden und ein weiterer für die Restaurants im Umkreis von 1000 Metern um den Standort des Kunden.

Das Coole ist, dass das gleiche Konzept auch für andere Ideen mit zwei oder mehr Standorten gilt.

Georäumliche Analyse mit Power BI

Eine weitere Anwendung von Geodaten ist die Verwendung für die Geodatenanalyse. In diesem Abschnitt haben wir ein Beispiel, in dem COVID-19-Fälle pro Standort verwendet und mit Power BI präsentiert werden.

(Nebenbei bemerkt finden Sie hier weitere Informationen darüber, was Power BI ist und wie es installiert wird)

Die Installation von Power BI Desktop ist kostenlos. Eine der Standardvisualisierungen ist die Kartenvisualisierung mit Bing Maps. Wir benötigen keine Koordinaten für bekannte Orte wie Länder und US-Bundesstaaten. Sehen Sie dies im folgenden Beispiel:

Beachten Sie das rote Kästchen in Abbildung 4. Breiten- und Längengrad bleiben leer, aber die Blasen werden problemlos auf der Karte dargestellt.

Im nächsten Beispiel verwenden wir jedoch Regionen und Städte auf den Philippinen. Koordinaten sind ein Muss, um die Blasen richtig zu zeichnen.

WAS SIE BRAUCHEN

Bevor wir zum eigentlichen Teil des Berichts kommen, sind hier die grundlegenden Dinge, die wir brauchen:

  • Power BI Desktop
  • Kartenvisualisierung
  • Tabellen und Abfragen
  • Beispieldaten

VORBEREITUNG DER DATEN

Vorbereitung der Tabellen und Ansichten

Am Anfang müssen wir die Container für unsere Daten einrichten. Wir benötigen also die folgenden Tabellen:

  1. Städte – eine nach Regionen kategorisierte Liste von Städten auf den Philippinen.
  2. Regionen – eine Liste von Gebieten auf den Philippinen
  3. CityCases – eine Liste mit der Anzahl der Fälle für jede Stadt.

Unten ist die Tabellenstruktur:

CREATE TABLE [dbo].[Cities](
[CityID] [int] IDENTITY(1,1) NOT NULL,
[CityName] [varchar](50) NOT NULL,
[RegionID] [int] NOT NULL,
[GeoLocation] [geography] NULL,
 CONSTRAINT [PK_Cities] PRIMARY KEY CLUSTERED
(
[CityID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[Regions](
[RegionID] [int] IDENTITY(1,1) NOT NULL,
[Region] [varchar](50) NOT NULL,
[GeoLocation] [geography] NULL,
 CONSTRAINT [PK_Regions] PRIMARY KEY CLUSTERED
(
[RegionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

CREATE TABLE [dbo].[CityCases](
[CityCaseID] [int] IDENTITY(1,1) NOT NULL,
[CityID] [int] NOT NULL,
[DateReported] [date] NOT NULL,
[TotalCases] [int] NOT NULL,
[TotalDeaths] [int] NOT NULL,
 CONSTRAINT [PK_CityCases] PRIMARY KEY CLUSTERED
(
[CityCaseID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[CityCases]  WITH CHECK ADD  CONSTRAINT [FK_CityCases_Cities] FOREIGN KEY([CityID])
REFERENCES [dbo].[Cities] ([CityID])
GO
ALTER TABLE [dbo].[CityCases] CHECK CONSTRAINT [FK_CityCases_Cities]
GO

Da der geografische Datentyp der Power BI-Kartenvisualisierung unbekannt ist, müssen Sie Ansichten erstellen. Der Zweck besteht darin, den Breiten- und Längengrad aus diesen Spalten anzuzeigen. Wir tun dies für die Städte und Regionen – siehe unten:

CREATE VIEW vwCityCoordinates
AS
SELECT
 CityID
,CityName
,GeoLocation.Lat AS Latitude
,Geolocation.Long AS Longitude
,RegionID
FROM Cities

CREATE VIEW vwRegionCoordinates
AS
SELECT
 RegionID
,Region
,GeoLocation.Lat AS Latitude
,GeoLocation.Long AS Longitude
FROM Regions

Das ist es. Lat und Lang sind Eigenschaften für Längen- und Breitengrad. Es ist jetzt möglich, sie in unserem Power BI-Bericht zu verwenden.

Aufbau der Daten

Als Nächstes müssen Sie die Daten für unsere drei Tabellen erstellen.

Vielen Dank an das philippinische Gesundheitsministerium für die Bereitstellung des Datensatzes für die Öffentlichkeit. Die Datei liegt im CSV-Format vor. Die Dateinamenskonvention lautet DOH COVID Data Drop_ yyyymmdd – 04 Case Information.CSV.

So erhalten Sie die Datei, um mit unserem Beispiel besser zu arbeiten:

  1. Klicken Sie auf den Link zum Datensatz.
  2. Wählen Sie einen Monatsordner aus. August 2020 ist in den DOH-COVID-Daten (08).
  3. Wählen Sie ein Datum aus. Der 12. August 2020 ist beispielsweise in DOH COVID Data Drop_20200812.
  4. DOH COVID Data Drop_ 20200812 – 04 Case Information.CSV herunterladen. Wiederholen Sie die Schritte 2-4, um den Bericht für die anderen Tage zu erhalten.

Außerdem müssen Sie diese Daten in SQL Server importieren. So geht's:

  1. Öffnen Sie die CSV-Datei in Excel.
  2. Fügen Sie eine Spalte DateReported hinzu und füllen Sie alle Datensätze mit dem entsprechenden Datum. In diesem Fall der 10.08.2020.
  3. Speichern Sie es als Excel-Datei (.xlsx).
  4. Exportieren Sie die Excel-Datei nach SQL Server in eine Tabelle namens covid_ph .

Nachdem die Daten in SQL Server bereit sind, besteht die nächste Aufgabe darin, Folgendes im SSMS-Abfrage-Editor auszuführen:

INSERT INTO CityCases
(CityID, DateReported, TotalCases, TotalDeaths)
SELECT DISTINCT
 c.CityID
,cp.DateReported
,(SELECT COUNT(*) FROM covid_ph cp1 WHERE cp1.CityMunRes = cp.CityMunRes AND                 
                               cp1.DateReported = cp.DateReported) AS TotalCases
,(SELECT COUNT(*) FROM covid_ph cp1 WHERE cp1.CityMunRes = cp.CityMunRes AND 
                               cp1.DateReported = cp.DateReported AND 
                               cp1.RemovalType='DIED') AS TotalDeaths
FROM covid_ph cp
INNER JOIN Cities c ON cp.CityMunRes = c.CityName
ORDER BY cp.DateReported

Inzwischen gibt es in dem von uns verwendeten Datensatz keine Koordinaten. Daher habe ich die Breiten- und Längengrade von Regionen und Städten manuell von latlongdata.com hinzugefügt.

Hier sind die Daten für Regionen :

INSERT INTO Regions
(Region, GeoLocation)
VALUES
('BARMM',geography::STGeomFromText('POINT(121.987 6.42964)', 4326)),
('CAR',geography::STGeomFromText('POINT(121.466 17.4737)', 4326)),
('CARAGA',geography::STGeomFromText('POINT(125.492 9.78604)', 4326)),
('NCR',geography::STGeomFromText('POINT(120.984 14.5995)', 4326)),
('Region I: Ilocos Region',geography::STGeomFromText('POINT(120.381 17.5553)', 4326)),
('Region II: Cagayan Valley',geography::STGeomFromText('POINT(121.811 16.9754)', 4326)),
('Region III: Central Luzon',geography::STGeomFromText('POINT(120.712 15.4828)', 4326)),
('Region IV-A: CALABARZON',geography::STGeomFromText('POINT(121.079 14.1008)', 4326)),
('Region IV-B: MIMAROPA',geography::STGeomFromText('POINT(118.736 9.84321)', 4326)),
('Region IX: Zamboanga Peninsula',geography::STGeomFromText('POINT(123.259 8.15408)', 4326)),
('Region V: Bicol Region',geography::STGeomFromText('POINT(123.414 13.421)', 4326)),
('Region VI: Western Visayas',geography::STGeomFromText('POINT(122.537 11.005)', 4326)),
('Region VII: Central Visayas',geography::STGeomFromText('POINT(124.064 9.81687)', 4326)),
('Region VIII: Eastern Visayas',geography::STGeomFromText('POINT(125.039 12.2446)', 4326)),
('Region X: Northern Mindanao',geography::STGeomFromText('POINT(124.686 8.02016)', 4326)),
('Region XI: Davao Region',geography::STGeomFromText('POINT(126.089 7.30416)', 4326)),
('Region XII: SOCCSKSARGEN',geography::STGeomFromText('POINT(124.686 6.27069)', 4326))

Hier sind die Daten aus einer Teilliste von Städten für Städte Tabelle:

INSERT INTO Cities
(CityName, RegionID, GeoLocation)
VALUES
('CALOOCAN CITY',4,geography::STGeomFromText('POINT(120.967 14.6488)', 4326)),
('CITY OF LAS PIÑAS',4,geography::STGeomFromText('POINT(120.999 14.4325)', 4326)),
('CITY OF MAKATI',4,geography::STGeomFromText('POINT(121.033 14.5502)', 4326)),
('CITY OF MALABON',4,geography::STGeomFromText('POINT(120.957 14.6633)', 4326)),
('CITY OF MANDALUYONG',4,geography::STGeomFromText('POINT(121.039 14.5771)', 4326)),
('CITY OF MANILA',4,geography::STGeomFromText('POINT(120.982 14.6077)', 4326)),
('CITY OF MARIKINA',4,geography::STGeomFromText('POINT(121.097 14.6409)', 4326)),
('CITY OF MUNTINLUPA',4,geography::STGeomFromText('POINT(121.05 14.4209)', 4326)),
('CITY OF NAVOTAS',4,geography::STGeomFromText('POINT(120.933 14.6775)', 4326)),
('CITY OF PARAÑAQUE',4,geography::STGeomFromText('POINT(121.017 14.4664)', 4326)),
('CITY OF PASIG',4,geography::STGeomFromText('POINT(121.061 14.5876)', 4326)),
('CITY OF SAN JUAN',4,geography::STGeomFromText('POINT(121.037 14.6001)', 4326)),
('CITY OF VALENZUELA',4,geography::STGeomFromText('POINT(120.967 14.6823)', 4326)),
('PASAY CITY',4,geography::STGeomFromText('POINT(121 14.5505)', 4326)),
('PATEROS',4,geography::STGeomFromText('POINT(121.071 14.5487)', 4326)),
('QUEZON CITY',4,geography::STGeomFromText('POINT(121.033 14.633)', 4326)),
('TAGUIG CITY',4,geography::STGeomFromText('POINT(121.062 14.5216)', 4326)),
('ALFONSO',8,geography::STGeomFromText('POINT(120.861 14.1214)', 4326)),
('AMADEO',8,geography::STGeomFromText('POINT(120.922 14.1693)', 4326)),
('BACOOR CITY',8,geography::STGeomFromText('POINT(120.974 14.413)', 4326)),
('CARMONA',8,geography::STGeomFromText('POINT(121.041 14.3108)', 4326)),
('CAVITE CITY',8,geography::STGeomFromText('POINT(120.897 14.4791)', 4326)),
('CITY OF DASMARIÑAS',8,geography::STGeomFromText('POINT(120.959 14.299)', 4326)),
('CITY OF GENERAL TRIAS',8,geography::STGeomFromText('POINT(120.907 14.3214)', 4326)),
('GEN. MARIANO ALVAREZ',8,geography::STGeomFromText('POINT(121.013 14.3051)', 4326)),
('GENERAL EMILIO AGUINALDO',8,geography::STGeomFromText('POINT(120.792 14.1931)', 4326)),
('IMUS CITY',8,geography::STGeomFromText('POINT(120.941 14.4064)', 4326)),
('INDANG',8,geography::STGeomFromText('POINT(120.873 14.192)', 4326)),
('KAWIT',8,geography::STGeomFromText('POINT(120.904 14.441)', 4326)),
('MAGALLANES',8,geography::STGeomFromText('POINT(120.746 14.1583)', 4326)),
('MARAGONDON',8,geography::STGeomFromText('POINT(120.735 14.253)', 4326)),
('MENDEZ (MENDEZ-NUÑEZ)',8,geography::STGeomFromText('POINT(120.902 14.1312)', 4326)),
('NAIC',8,geography::STGeomFromText('POINT(120.792 14.2965)', 4326)),
('NOVELETA',8,geography::STGeomFromText('POINT(120.88 14.4279)', 4326)),
('ROSARIO',8,geography::STGeomFromText('POINT(120.857 14.414)', 4326)),
('SILANG',8,geography::STGeomFromText('POINT(120.969 14.2142)', 4326)),
('TAGAYTAY CITY',8,geography::STGeomFromText('POINT(120.962 14.1153)', 4326)),
('TANZA',8,geography::STGeomFromText('POINT(120.85 14.3429)', 4326)),
('TERNATE',8,geography::STGeomFromText('POINT(120.678 14.2714)', 4326)),
('TRECE MARTIRES CITY (CAPITAL)',8,geography::STGeomFromText('POINT(120.868 14.2822)', 4326))

Nachdem die Daten nun vollständig eingestellt sind, können wir den Bericht erstellen.

VORBEREITUNG DES BERICHTS

Bevor wir beginnen, benötigen wir zwei Seiten mit Berichten. Eine Seite ist für die Daten pro Region und die andere Seite pro Stadt.

COVID-19-Bericht nach Region

Hier sind einfache Schritte zum Erstellen des Berichts pro Region:

  1. Stellen Sie von Power BI eine Verbindung zu SQL Server her. Geben Sie den Server und die Datenbank an.
  2. Wählen Sie die Tabellen und Ansichten aus, die Sie für den Bericht benötigen.

3. Definieren Sie die Beziehungen – siehe Abbildung 6 unten. Weitere Einzelheiten zum Definieren von Beziehungen in Power BI finden Sie auf dieser Seite.

4. Klicken Sie auf die Kartenvisualisierung und füllen Sie die Eigenschaften aus. Binden Sie die Breitengrad- und Längengradeigenschaften aus den vwRegionCoordinates . Dann der Tooltip von vwRegionCoordinates Region Säule. Und schließlich die Größe von CityCases TotalCases Säule. Siehe Abbildung 7 unten:

  1. Fügen Sie einen Slicer hinzu und binden Sie ihn an DateReported von CityCases Tabelle.
  2. Legen Sie eine Karte ein und binden Sie sie an TotalCases von CityCases Tabelle
  3. Fügen Sie ein gruppiertes Balkendiagramm hinzu. Binden Sie die Axis-Eigenschaft an Region Spalte aus vwRegionCoordinates . Binden Sie dann die Werte an TotalCases Spalte von CityCases . Siehe Abbildung 8 unten:

Nach den obigen Schritten sehen Sie das endgültige Aussehen. Es sollte Abbildung 9 unten ähnlich sein:

COVID-19-Bericht pro Stadt

Die erste Seite ist fertig. Das Hinzufügen der nächsten Seite für den Bericht pro Stadt sollte nicht schwierig sein.

Hier sind die Schritte:

  1. Fügen Sie eine neue Seite hinzu, indem Sie auf das + im unteren Teil des Fensters klicken, und benennen Sie sie nach Stadt (Philippinen) um.
  2. Schließen Sie einen Slicer ein und binden Sie ihn an die Region von vwRegionCoordinates .
  3. Fügen Sie einen weiteren Slicer ein und binden Sie ihn an DateReported von CityCases .
  4. Fügen Sie eine Karte hinzu und binden Sie sie an TotalCases von CityCases .
  5. Fügen Sie eine Kartenvisualisierung ein. Sie definieren die Breiten- und Längengradeigenschaften aus den vwCityCoordinates . Der Tooltip stammt von vwCityCoordinates Stadtname Spalte, und die Größe stammt von CityCases TotalCases Spalte.
  6. Fügen Sie ein gruppiertes Balkendiagramm hinzu und binden Sie die Achse an CityName Spalte von vwCityCoordinates und Werte zu TotalCases von CityCases .

Das endgültige Aussehen des Berichts pro Stadt sollte Abbildung 10 unten ähneln:

Was ist nun die große Sache bei der Verwendung von Karten für die Analyse im Vergleich zur Betrachtung von Balken- oder Liniendiagrammen?

Zunächst einmal dient es nicht nur der Ästhetik und dem Beeindrucken Ihres Publikums mit auffälligen Berichten. Noch wichtiger ist, dass es ihnen ein klareres Verständnis der Daten in Bezug auf einen Standort vermittelt.

In unserem Beispiel können Sie sehen, wo das Pandemieproblem weiter verbreitet ist, je nachdem, wie groß die Blasen sind. Außerdem können wir auf einen Blick die Anzahl der Fälle an verschiedenen Orten relativ zueinander sehen und vergleichen. Dies wird auch Regierungsbeamten helfen, bessere Entscheidungen zu treffen.

Unser Berichtsbeispiel ist zu einfach, aber es zeigt, wie geografische Datentypen von SQL Server Ihnen bei der Geodatenanalyse helfen können.

Schlussfolgerung

Ist Ihnen klar, was Sie davon haben, wenn Sie den räumlichen Datentyp „Geografie“ verwenden?

  • Räumliche oder geospatiale Daten stehen für die Daten zu Punkten, die sich auf der Erdoberfläche befinden.
  • Es kann für die „nächster Nachbar“-Abfrage verwendet werden, die nach Kinos, Restaurants, Clubs usw. in der Nähe sucht
  • Es ist auch praktisch für die Analyse von Geodaten, wie der Bericht, den wir in Power BI erstellt haben.
  • Die grundlegenden Elemente beim Erstellen einer geografischen Instanz sind Dinge wie bekannter Text (WKT), Spatial Reference Identifier (SRID) und die Methode STGeomFromText .

In diesem Beitrag haben wir nur einen Teil dessen angesprochen, was räumliche Daten in SQL Server für Sie tun können. Möglicherweise verwenden Sie sie nicht alle auf einmal, aber die häufigsten Anwendungsfälle sind hier, um Ihnen den Einstieg zu erleichtern. Warum erkunden Sie nicht mehr von den Referenzen von Microsoft unten?

  • Raumdatenübersicht
  • Räumliche Datentypen
  • Räumliche Daten indizieren

Wenn Ihnen dieser Beitrag gefällt, teilen Sie ihn bitte mit Ihren bevorzugten Social-Media-Plattformen.