高速公路上的经纬度出口,例如 US 101 表示在 N-S 方向排列
Lat-Long of exits on a Freeway e.g US 101 say arranged in N-S direction
我正在尝试查找 US 101
出口上的所有出口,最好使用 OpenGIS osm2pgsql
从北到南的顺序。但到目前为止运气不好。
关闭我找到的解决办法是:
接近 SQL:
select osm_id, name, ref from planet_osm_roads where highway='motorway_link';
查询:
select osm_id, name, ref from planet_osm_roads where highway='motorway';
Returns 有很多带 ref 的节点,但我不认为这些是高速公路出口(高速公路上标注的点有什么特别之处,其中 highway="motorway"?
然而,大多数出口的名称和编号都是空的,所以虽然我有出口经纬度,但不清楚这些出口在哪条高速公路上,也没有命令说从北到南..
请帮忙。
在 OSM 数据中,高速公路出口被标记为 highway=motorway_junction,它是点的类型,因此:
select *
from planet_osm_point
where highway = 'motorway_junction'
and ref = '101'
order by ST_Y(way) desc
如果空ref在这一点上有问题你也可以检查是否有指定ref的高速公路(当然这不是100%的方法但总比没有方法好)
select *
from planet_osm_point p
where highway = 'motorway_junction'
and exists (
select 1
from planet_osm_lines l
where st_DWithin(l.way::geography, p.way::geography, 100)
and highway = 'motorway'
and ref = '101')
order by ST_Y(way) desc
您可以 运行 一个 Overpass 查询,它为您提供所有标记为 highway=motorway_link
的方式,这些方式连接到标记为 [ref="US 101"]
的方式:
[timeout:60][bbox:19.56,-132.63,51.62,-56.60];
way[highway][ref="US 101"];
node(w);
way(bn)[highway=motorway_link];
out center;
然后您可以将数据导出为 GeoJSON。
我正在尝试查找 US 101
出口上的所有出口,最好使用 OpenGIS osm2pgsql
从北到南的顺序。但到目前为止运气不好。
关闭我找到的解决办法是:
接近 SQL:
select osm_id, name, ref from planet_osm_roads where highway='motorway_link';
查询:
select osm_id, name, ref from planet_osm_roads where highway='motorway';
Returns 有很多带 ref 的节点,但我不认为这些是高速公路出口(高速公路上标注的点有什么特别之处,其中 highway="motorway"?
然而,大多数出口的名称和编号都是空的,所以虽然我有出口经纬度,但不清楚这些出口在哪条高速公路上,也没有命令说从北到南..
请帮忙。
在 OSM 数据中,高速公路出口被标记为 highway=motorway_junction,它是点的类型,因此:
select *
from planet_osm_point
where highway = 'motorway_junction'
and ref = '101'
order by ST_Y(way) desc
如果空ref在这一点上有问题你也可以检查是否有指定ref的高速公路(当然这不是100%的方法但总比没有方法好)
select *
from planet_osm_point p
where highway = 'motorway_junction'
and exists (
select 1
from planet_osm_lines l
where st_DWithin(l.way::geography, p.way::geography, 100)
and highway = 'motorway'
and ref = '101')
order by ST_Y(way) desc
您可以 运行 一个 Overpass 查询,它为您提供所有标记为 highway=motorway_link
的方式,这些方式连接到标记为 [ref="US 101"]
的方式:
[timeout:60][bbox:19.56,-132.63,51.62,-56.60];
way[highway][ref="US 101"];
node(w);
way(bn)[highway=motorway_link];
out center;
然后您可以将数据导出为 GeoJSON。