• 已知一点求最近点(问题请教)


    问题的提出:已知点P(经纬度),查找该点最临近的点D(点,线,面),返回D的名称及与P的方向,位置和距离关系,地物总数大于50万个
    问题的问题:
    一:是否基于控件?基于控件和非基于控件应该怎么做?
    二:坐标系统是什么系统?(一般是WGS84的坐标系统)
    三:最临近的点D(点,线,面),这里线和面对象的点是中心还是节点?(这里可能只讨论中心点,节点略微复杂)

    可能是很简单的问题,可惜我不会,特向大家讨教。
    思路:遍历。那么如何优化?

    自己用MAPX傻傻的做了下。先简单的介绍下我的思路。
    使用的是MAPX的SearchWithinDistance方法,只是做了下权衡,设置了一个搜索半径距离和一个搜索最大数量。
    虽然简单的看是可以做成,但问题很多。一是MAPX的SearchWithinDistance方法是否也是遍历实现?二是距离和数量之间如何权衡?
    如果对于情况一,那么我就不需要使用SearchWithinDistance方法,直接遍历各个点来求距离。对于情况二,对于最近地物的距离为1米和1000米肯定是不一样的,那么如何设置距离,控制数量又该如何设置?
    还有一个问题:如何确定方向。
    本来想用个反正弦函数,结果实在想不起来这个函数。对于直角坐标系那么用求出角度即可确定方向,那么对于球面体也用直角坐标系?至少应该经过投影。所以我想知道问题的问题二的原因。
    请大家把这个方向问题补充完整,谢谢。给个参考网址:http://www.pep.com.cn/200503/ca688391.htm,我是没有看懂。
    个人感觉SearchWithinDistance方法也用了遍历,所以直接自行遍历比加这个SearchWithinDistance方法应该要好一点。
    如果有朋友有好的思路请补充,谢谢。

    忘了贴代码,补上:https://files.cnblogs.com/Tangf/neardis.rar (VB6+MAPX5.02中文版环境下调试成功,文件中用时的计算是错误的)

    优化:
    个人思路一:从原始数据着手,分割数据。
    应该讲许多公司都是采用这样的方法的,只是,我不明白这个具体如何操作,也只能浅谈下我的思路。
    假如已知点在图幅a内,那么首先遍历a到i图幅内的点,如果有则比较计算出最近的点,如果没有则再扩大一圈来计算点。
    当然这里可能在原始数据中需要处理,并非完全基于拓扑关系计算。如果紧紧知道点P,则先计算点P所在图幅号,结果是a,则遍历a和a周围的所有图幅。如果不存在最近点则继续遍历b到i的图幅的外围图幅。
    图幅建议使用方形,否则范围太大的情况下可能会错误。

  • 相关阅读:
    EM算法
    Statistics in Python
    26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL
    5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics
    统计学习那些事
    Image Scaling using Deep Convolutional Neural Networks
    Unsupervised learning, attention, and other mysteries
    使用导入导出进行备份和恢复OCR(10g)
    计算比尔盖茨財富的方法
    jQuery訪问属性,绝对定位
  • 原文地址:https://www.cnblogs.com/Tangf/p/411182.html
Copyright © 2020-2023  润新知