I've destroyed my National Geographic map while travelling around the New Zealand. How can I add the roads travelled to my digital map? |
Travelling around New Zealand can be quite an experience. This is a well known sight. |
I’ll concentrate on the roads in this post, and deal with boat and foot tracks later. As I didn’t carry a GPS when travelling by bus or car, I had to find the road lines from a different source. I’m using road data from LINZ for my map, but I’m sure you can achieve the same with OpenStreetMap data.
First, I created an empty shapefile in QGIS for my road data. Then I marked and copied the roads I’ve travelled from the LINZ shapefile, and pasted the road segments into my own shapefile. I also had to cut road lines to remove parts where I’ve not been. Lastly, I merged the road segments together. QGIS is a great tool for tasks like this.
Editing road lines in QGIS. |
I used ogr2ogr to convert the shapefile into GeoJSON, which is the vector format supported by Leaflet:
ogr2ogr -t_srs EPSG:4326 -f "GeoJSON" -lco COORDINATE_PRECISION=3 nz-tour-road.json nz-tour-road.shp
I then assigned the the GeoJSON object to a variable:
var roads = {
"type": "FeatureCollection",
"features": [...]
};
To create a GeoJSON layer with custom styles in Leaflet only requires a few lines of code:
var roads = L.geoJson(roads, {
style: {
color: '#333',
weight: 1.5,
opacity: 1
}
});
As I wanted to combine the road lines with the place markers I decided to use the Leaflet LayerGroup:
This is my new “Where I’ve Been” map:
Fullscreen map
Kingston road along Lake Wakatipu. |
Towards Glenorchy and the Southern Alps. |
No comments:
Post a Comment