徒步与登山路线规划
领域
珠穆朗玛峰和乔戈里峰可能是喜马拉雅山脉中最广为人知的探险目的地,但喜马拉雅山脉较低的山脉为硬核徒步者、骑行者甚至一些山地自行车爱好者(比如我)提供了更广泛的徒步目的地。徒步路线通常没有文档记录,你需要依赖当地向导或确保有人以前走过这条路线。这些徒步路线会经过一些偏远的小村庄,这些村庄既是补给点,也是路线的标记。同一个目的地有时可以通过不同的路线到达,这取决于能力(攀岩)、交通方式(步行、自行车、SUV)以及季节。
图是表示这些数据并根据你的偏好查找各种目的地路线的理想方式。

附注:存储 GPS 坐标并将这些信息叠加到地图上也会是一个很好的补充。
设置
示例数据是上述图片的一个子集(我修改了很多数据以演示各种查询)
CREATE (Rimbik:town{name:'Rimbik'})
CREATE (Darjeeling:town{name:'Darjeeling'})
CREATE Darjeeling-[:PublicTransport{distance:15,name:'Darjeeling-Rimbik',summer:'true',winter:'true'}]->Rimbik
CREATE Darjeeling-[:road{distance:15,name:'Darjeeling-Rimbik',summer:'true',winter:'true'}]->Rimbik
CREATE Darjeeling-[:trek{distance:15,name:'Darjeeling-Rimbik',summer:'true',winter:'true'}]->Rimbik
CREATE (BhikeBhanja:village{name:'BhikeBhanja'})
CREATE Rimbik-[:trek{distance:18,name:'Rimbik-BhikeBhanja',summer:'true',winter:'true'}]->BhikeBhanja
CREATE (Sandakphu:peak{name:'Sandakphu',altitude:'12400 ft'})
CREATE BhikeBhanja-[:trek{distance:4,name:'BhikeBhanja-Sandakphu',summer:'true',winter:'true'}]->Sandakphu
CREATE (Sirikhola:village{name:'Sirikhola'})
CREATE Rimbik-[:trek{distance:4,name:'Rimbik-Sirikhola',summer:'true',winter:'true'}]->Sirikhola
CREATE Rimbik-[:twowheeler{distance:4,name:'Rimbik-Sirikhola',summer:'true',winter:'true'}]->Sirikhola
CREATE (Gurdum:village{name:'Gurdum'})
CREATE Sirikhola-[:trek{distance:6,name:'Sirikhola-Gurdum',summer:'true',winter:'true'}]->Gurdum
CREATE Sirikhola-[:twowheeler{distance:6,name:'Sirikhola-Gurdum',summer:'true',winter:'true'}]->Gurdum
CREATE Gurdum-[:trek{distance:12,name:'Gurdum-Sandakphu',summer:'true',winter:'true'}]->Sandakphu
CREATE Gurdum-[:twowheeler{distance:12,name:'Gurdum-Sandakphu',summer:'true',winter:'true'}]->Sandakphu
CREATE (Tumbling:village{name:'Tumbling'})
CREATE Darjeeling-[:trek{distance:10,name:'Darjeeling-Tumbling',summer:'false',winter:'true'}]->Tumbling
CREATE Darjeeling-[:road{distance:10,name:'Darjeeling-Tumbling',summer:'false',winter:'true'}]->Tumbling
CREATE (Gairibus:village{name:'Gairibus'})
CREATE Tumbling-[:trek{distance:8,name:'Tumbling-Gairibus',summer:'true',winter:'true'}]->Gairibus
CREATE Tumbling-[:road{distance:8,name:'Tumbling-Gairibus',summer:'true',winter:'true'}]->Gairibus
CREATE Tumbling-[:twowheeler{distance:8,name:'Tumbling-Gairibus',summer:'true',winter:'true'}]->Gairibus
CREATE Rimbik-[:trek{distance:7,name:'Rimbik-Tumbling',summer:'false',winter:'true'}]->Tumbling
CREATE Gairibus-[:trek{distance:10,name:'Gairibus-BhikeBhanja',summer:'true',winter:'true'}]->BhikeBhanja
CREATE Gairibus-[:road{distance:10,name:'Gairibus-BhikeBhanja',summer:'true',winter:'true'}]->BhikeBhanja
CREATE Gairibus-[:twowheeler{distance:10,name:'Gairibus-BhikeBhanja',summer:'true',winter:'true'}]->BhikeBhanja
CREATE (Rammam:village{name:'Rammam'})
CREATE Sirikhola-[:trek{distance:7,name:'Sirikhola-Rammam',summer:'true',winter:'true'}]->Rammam
CREATE Sirikhola-[:twowheeler{distance:7,name:'Sirikhola-Rammam',summer:'true',winter:'true'}]->Rammam
CREATE Rammam-[:trek{distance:10,name:'Rammam-Gurdum',summer:'false',winter:'true'}]->Gurdum
CREATE Rammam-[:road{distance:10,name:'Rammam-Gurdum',summer:'false',winter:'true'}]->Gurdum
CREATE Rammam-[:twowheeler{distance:10,name:'Rammam-Gurdum',summer:'false',winter:'true'}]->Gurdum
CREATE (Sabargram:peak{name:'Sabargram',altitude:'10000 ft'})
CREATE Rammam-[:trek{distance:14,name:'Rammam-Sabargram',summer:'true',winter:'true'}]->Sabargram
CREATE Sabargram-[:trek{distance:15,name:'Rammam-Sabargram',summer:'true',winter:'true'}]->Sandakphu
图解释
城镇是可以乘坐公共交通工具到达的地方,探险从城镇开始,在山顶结束。村庄是中间点。
节点之间不同类型的路线由关系表示。共有 4 种类型的关系(徒步、两轮车、公路、公共交通)。请参见此 gist 中的第一张图片以了解概念。
节点之间关系的示例。
MATCH (a:village { name: 'Sirikhola' }),(b:village{ name: 'Gurdum' }) MATCH (a)-[r]->(b) RETURN r
用例
列出所有通往 Sandakphu 自行车路线的起始城镇
MATCH (p:peak{name:'Sandakphu'})-[:twowheeler*]-(t:town) return DISTINCT(t.name)
给我从 Rimbik 出发的所有完整路线
MATCH (p:peak{name:'Sandakphu'})-[r:twowheeler*]-(t:town{name:'Rimbik'}) return distinct(r)
但是这些路线在夏季开放吗?
MATCH (p:peak{name:'Sandakphu'})-[r:twowheeler*{summer:'true'}]-(t:town{name:'Rimbik'}) return distinct(r)
太棒了,我现在就出发!!
为我找到冬季通往 Sandakphu 的汽车路线
MATCH (p:peak{name:'Sandakphu'})-[r:road*{winter:'true'}]-(t:town) return distinct(t.name)
此页面有帮助吗?