zoukankan      html  css  js  c++  java
  • 依据道路的shape获得high_cross和low_cross

    如图所看到的:怎样依据提供的道路的shape file获得该路的high cross和low cross

    所谓的high cross就是图中的king st这条路,low cross是Gravers Ln这条路。

    详细实现的方法例如以下:

    #1 将道路的shape数据导入到 Sql Server中

    #2 在实体表中添加两个字段low_cross和high_cross

    #3 用程序【我是用C#写的一个小程序】循环每条街道,找出跟当前街道相交的路,获得当前道路起始点地址的经纬度和一个交叉路口的经纬度,比較起始点位置与交叉路口的远近,离数字较小的近就是low cross,离数字小的较远的就是high cross。

    #4 当然处理的过程中有多种情况:有仅仅有一个交叉点的情况 -- 仅仅能更新一个high cross 或者low cross

    两个交叉路都在同一个方向的 -- 这就须要用Intersections的方法获得交叉点比較,然后用STEquals的方法比較这两个点是否为同一个点【实际操作过程中发现,有时候两个点的经纬度区别非常小,假设用STEquals推断是两个点,实际逻辑上应该是一个点,STDistance比較一个容差的距离的方式比較合适的,经过測试我设置的值为0.00002,这个值可依据实际情况设置】

    三个交叉路口、四个交叉路口、五个交叉路口的都有 -- 处理方法是一样,当前无法区分那个确实是high cross 和low cross,所以这样的情况就是high cross或low cross可能有多个的情况。

  • 相关阅读:
    02-JavaScript语法
    001 docker基本环境的搭建
    023 虚拟机的安装
    022 虚拟机的网络配置
    021 虚拟机的安装
    004 java客户端的开发
    003 Rabbitmq中交换机的类型
    002 Rabbitmq的基础概念
    001 基础环境的搭建
    001 基本的环境的安装
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4507353.html
Copyright © 2011-2022 走看看