Basis netwerk visualisatie en routeren (QGIS3)¶
Netwerken maken, visualiseren en beheren is een belangrijk deel van GIS. Veel typen fysieke infrastructuur, zoals wegen, spoorwegen, nutsvoorzieningen, kunnen worden gemodelleerd als netwerken met lijnen en knopen - met daaraan gekoppelde eigenschappen. In deze handleiding zullen we leren hoe netwerken van wegen normaal gesproken worden gemodelleerd en het toepassen van enkele technieken voor opmaken om de eigenschappen voor routeren te visualiseren. We zullen ook de ingebouwde gereedschappen voor netwerkanalyses in QGIS3 gebruiken om het kortste pad te zoeken naar 2 punten langs het netwerk.
Overzicht van de taak¶
We zullen een laag nemen met een blok van wegen voor Washington DC, de verbindingen visualiseren en een netwerk bouwen om het kortste pad te zoeken tussen 2 willekeurige punten in de stad.
Andere vaardigheden die u zult leren¶
Hoe gegevens bepaalde ‘override’ te gebruiken om een pijlsymbool uit te lijnen, gebaseerd op de richting van de lijn.
De gegevens ophalen¶
De overheid van het district of Columbia deelt gratis honderden gegevenssets in de Open Data Catalog.
Download de Roadway Block gedeeld door DCGISopendata als een Shapefile.
Voor het gemak kunt u direct een kopie van de gegevensset downloaden vanaf de link hieronder:
Gegevensbron: [DCOPENDATA]
Procedure¶
Zoek in het paneel Browser naar het bestand
Roadway_Block-shp.zip
. Vergroot het en sleep het bestandRoadway_Block-shp
naar het kaartvenster.
You will see a new line layer called
Roadway_Block
added to the Layers panel. This layer represents each road in Washington DC. Select the Identify tool in the Attributes Toolbar. Click on any road segment to see what attributes are attached to it. There are standard attributes like Route-name, Road-type etc. there is an attribute calledSUMMARYDIR
. This is an important attribute for routing as it specifies whether the segment is two-way or one-way. It contains 4 different values.BD
(Both Directions) for two-way streets.OB
(Out Bound) for one-way streets where the traffic is allowed in the direction of the line (start-point to end-point) andIB
(In Bound) for one-way streets where the traffic flows in the opposite direction of the line. There is also??
value where we will assume two-way traffic. We will now use the information in that attribute to display an arrow on one-way streets.
Klik, in het paneel Lagen, op de knop Paneel Laag opmaken openen.Selecteer de renderer
Regel-gebaseerd
in de keuzelijst.
We zullen een nieuwe stijl maken met een filter voor alleen de wegen met eenrichtingsverkeer. Klik op de knop Regel toevoegen +.
Klik, in het dialoogvenster Regel bewerken, op de knop Expressie.
In het dialoogvenster Expressie-string bouwer, vergroot het gedeelte Velden en waarden in het middenpaneel. Selecteer het attribuut
SUMMARYDIR
en klik op Alle unieke in het paneel aan de rechterkant. De 4 waarden die we eerder hebben besproken verschijnen. Het hier hebben van deze waarden als een verwijzing helpt bij het bouwen van de expressie. Ook kunt u dubbelklikken op een waarde om die toe te voegen aan de expressie.
Het doel is om een expressie te maken die alle wegen met eenrichtingsverkeer selecteert. Voer de volgende expressie in en klik op OK.
"SUMMARYDIR" in ('IB', 'OB')
Wijzig vervolgens het Symboollaagtype naar
Symbolen-lijn
.
Selecteer
op middelpunt
onder Plaatsing markering.
Klik op het symbool
Standaard symbool
. Scroll naar beneden en kies de markeringfilled_arrowhead
. U zult zien dat het symbool dat op een pijlpunt lijkt nu zal verschijnen op de wegen met eenrichtingsverkeer. Maar zij wijzen allemaal maar in één enkele richting, terwijl wij weten dat ons filter wegen in verschillende richtingen bevat. We kunnen de symbolen verder verfijnen met symbolen met een data-bepaalde ‘override’ voor de waarde Rotatie.
Klik op de knop Data-bepaalde ‘override’ naast Rotatie.
We kunnen een expressie met voorwaarden invullen die verschillende waarden voor de rotatie teruggeven, afhankelijk van de richting voor eenrichtingsverkeer. Een rotatie van 180° graden voor de weg met tegengestelde richting zal de richting perfect maken. Hierin zullen we de wegen met het attribuut
IB
180° roteren, zodat alle wegen de juiste richting voor de verkeersstroom hebben. Voer de volgende expressie in en klik op OK.
if( "SUMMARYDIR" = 'IB', 180, 0)
Nu zult u zien dat de pijlpunten zijn uitgelijnd op de juiste richting van de weg. We kiezen er voor om de pijlpunten alleen weer te geven op de wegen met eenrichtingsverkeer om de stijl niet te druk te maken. Niet gelabelde straten worden geacht wegen met tweerichtingsverkeer te zijn. Nu we het netwerk juist hebben opgemaakt, kunnen we enkele analyses uitvoeren. Ga naar
.
Zoek en lokaliseer het algoritme
. Dubbelklik om het te starten.
Selecteer, in het dialoogvenster Kortste pad (punt naar punt),
Roadway_Block
als de Vectorlaag die netwerk weergeeft. Behoud het Te berekenen type pad alsKortste
. Vervolgens dienen we een begin- en eindpunt te kiezen. U kunt op de knop … klikken en op een willekeurig punt in het kaartvenster klikken. Als u de resultaten voor deze handleiding wilt repliceren, kunt u-76.99730092166396,38.887624846748984
als het Startpunt invoeren en-76.99154831062152,38.89151000569929
als het Eindpunt. Vergroot het gedeelte Gevorderde parameters. KiesSUMMARYDIR
als het Richtingsveld. U moet bekend zijn met de waarden voor één richting voor de voorwaartse en achterwaartse verkeersstromen. VoerOB
in als de Waarde voor voorwaartse richting enIB
als de Waarde voor achterwaartse richting. Laat de andere waarden op hun standaard waarden staan en klik op Uitvoeren.
Het algoritme zal de geometrie van de laag en de opgegeven parameters gebruiken om een grafiek voor het netwerk te bouwen. Deze grafiek wordt dan gebruikt om het kortste pad te zoeken tussen begin- en eindpunten. Als het algoritme is voltooid zult u een nieuwe laag
Kortste pad
zien toegevoegd aan het paneel Lagen die het kortste pad weergeeft tussen start- en eindpunten.
U zult zien dat er veel mogelijke paden zijn tussen start- en eindpunten. Maar gegeven de beperkingen van het netwerk - zoals eenrichtingswegen, is het resultaat het kortst mogelijke pad. Het is altijd een goed idee om uw analyse en veronderstellingen te valideren. Een eenvoudige manier om het te valideren is om een derde partij service voor in kaart brengen te gebruiken om te zien of hun resultaten overeenkomen met die welke wij hebben berekend. Hier is het kortste pad voorgesteld door Google Maps tussen dezelfde start- en eindpunten. Zoals u kunt zien komt de aanbevolen kortste route exact overeen met onze resultaten - wat onze analyse valideert.
If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)