【发布时间】:2010-09-28 03:11:18
【问题描述】:
如果我有一个点和一个道路网络,我如何找到道路上最近的点?即,这就像将点捕捉到一条线/道路。
我正在使用带有 Java 5 和 Oracle 10g 的 ArcGis 服务器 9.3。我正在通过 java api 使用 ST 函数和 NetworkAnalyst。
谢谢。
【问题讨论】:
如果我有一个点和一个道路网络,我如何找到道路上最近的点?即,这就像将点捕捉到一条线/道路。
我正在使用带有 Java 5 和 Oracle 10g 的 ArcGis 服务器 9.3。我正在通过 java api 使用 ST 函数和 NetworkAnalyst。
谢谢。
【问题讨论】:
使用INALocator.queryLocationBypoint()。你可以从你的 NAContext 创建一个 NALocator。将点传递给定位器,它会将点“捕捉”到道路网络。
网址按钮不起作用。 JavaDoc 的链接是http://resources.esri.com/help/9.3/ArcGISengine/java/api/arcobjects/com/esri/arcgis/networkanalyst/INALocator.html#queryLocationByPoint(com.esri.arcgis.geometry.IPoint, com.esri.arcgis.networkanalyst.INALocation[], com.esri.arcgis.geometry.IPoint[], double[])
【讨论】:
网络的各个部分应该由直线或曲线创建。因此,它的每一个特性都必须继承实现方法queryPointAndDistance()的接口ICurve。使用该方法和您的点,您应该在您想要的每个功能上获得最近的点。
如果你想找出最近的特征,你必须遍历特征集合(例如你之前跟踪过的)并比较每个特征的distanceFromCurve参数。请参阅 JavaDoc:http://resources.esri.com/help/9.3/arcgisengine/java/api/arcobjects/com/esri/arcgis/geometry/ICurve.html。
【讨论】: