我想计算我所在城市的唯一道路公里数。更一般地说,我希望将边界内每条道路的距离相加,为简单起见,矩形就可以了。
使用谷歌地图API套件可以做到这一点吗?如果是这样,你会怎么做?如果有人有任何与此类问题相关的资源,无论语言如何(甚至是使用其他映射工具的解决方案(,我都有兴趣阅读它们。
奖励积分:此问题的一般解决方案,可应用于Google地图中显示的预设"城市"(示例(,并明确定义城市限制。
您可以使用 OpenStreetMap 计算特定国家或地区的道路总长度。基于已经提出的多个类似问题,有多种可用的解决方案。
方法1来自一个国家/地区在 help.openstreetmap.org 处的总道路长度(以公里为单位(: 使用 Perl 脚本 osm-length-2.pl。在邮件列表帖子中有一个例子。
方法2从help.openstreetmap.org 处导出地图的实际道路长度: 将数据(地球或国家或地区提取(导入 PostGIS 数据库,然后使用 Frederik Ramm 提出的以下查询:
SELECT way AS clip INTO clipping_polygon FROM planet_osm_polygon WHERE boundary='administrative' AND admin_level='8' and name='My City'; SELECT name, highway, ST_INTERSECTION(way, clip) INTO clipped_roads FROM planet_osm_line, clipping_polygon WHERE ST_INTERSECTS(way, clip) AND highway IS NOT NULL; SELECT highway, SUM(ST_LENGTH(way::geography)) FROM clipped_roads GROUP BY highway;