laptop and a wrench

漏洞

IPolyline query PointAndDistance method using the Java API fails.

上次发布: August 25, 2014 No Product Found
漏洞 ID 编号 NIM001090
已提交February 10, 2006
上次修改时间June 5, 2024
适用范围No Product Found
找到的版本9.1
编程语言Java
修正版本9.2
状态Fixed

解决办法

/* * PolylineTest2.java * * Created on February 10, 2006, 10:46 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package com.esri.dsg.test;import com.esri.arcgis.system.ServerInitializer;import com.esri.arcgis.server.ServerConnection;import com.esri.arcgis.server.IServerObjectManager;import com.esri.arcgis.server.IServerContext;import com.esri.arcgis.carto.MapServer;import com.esri.arcgis.carto.MapServerInfo;import com.esri.arcgis.carto.MapDescription;import com.esri.arcgis.carto.ImageType;import com.esri.arcgis.carto.ImageDisplay;import com.esri.arcgis.carto.ImageDescription;import com.esri.arcgis.carto.IMapImage;import com.esri.arcgis.carto.IMap;/** * * @author jami2651 */public class PolylineTest2 { private ServerConnection _serverConnection; private ServerInitializer _serverInitializer; private IServerContext _serverContext; private MapServer _mapServer; private MapServerInfo _mapServerInfo; private MapDescription _mapDescription; private ImageType _imageType; private ImageDisplay _imageDisplay; private ImageDescription _imageDescription; private IMapImage _mapImage; private IMap _map; /** Creates a new instance of PolylineTest2 */ public PolylineTest2() { init(); } public void init(){ try{ _serverInitializer = new ServerInitializer(); _serverInitializer.initializeServer(); _serverConnection = new ServerConnection(); _serverConnection.connect("oceanshores"); IServerObjectManager serverObjectManager = _serverConnection.getServerObjectManager(); _serverContext = serverObjectManager.createServerContext("PortlandStreets", "MapServer"); _mapServer = new MapServer(_serverContext.getServerObject()); _map = _mapServer.getMap(_mapServer.getDefaultMapName()); _mapServerInfo = new MapServerInfo(_mapServer.getServerInfo(_mapServer.getDefaultMapName())); _mapDescription = new MapDescription(_mapServerInfo.getDefaultMapDescription()); _imageDescription = new ImageDescription(_serverContext.createObject("esricarto.ImageDescription")); _imageType = new ImageType(_serverContext.createObject("esricarto.ImageType")); _imageDisplay = new ImageDisplay(_serverContext.createObject("esricarto.ImageDisplay")); _imageType.setFormat(com.esri.arcgis.carto.esriImageFormat.esriImageJPG); _imageType.setReturnType(0); _imageDisplay.setHeight(450); _imageDisplay.setWidth(500); _imageDisplay.setDeviceResolution(96.0); _imageDescription.setType(_imageType); _imageDescription.setDisplay(_imageDisplay); } catch(Exception ex){ ex.printStackTrace(); } } public void queryPoint(){ try{ com.esri.arcgis.carto.FeatureLayer roadsLayer = new com.esri.arcgis.carto.FeatureLayer(_map.getLayer(0)); com.esri.arcgis.geodatabase.IFeatureClass featureClass = roadsLayer.getFeatureClass(); com.esri.arcgis.geodatabase.IFeature foundFeature = featureClass.getFeature(5416); com.esri.arcgis.geometry.IGeometry lineShape = foundFeature.getShape(); com.esri.arcgis.geometry.Polyline polyline = new com.esri.arcgis.geometry.Polyline(lineShape); com.esri.arcgis.geometry.IPoint fromPoint = polyline.getFromPoint(); com.esri.arcgis.geometry.IPoint toPoint = polyline.getToPoint(); double[] distanceAlongCurve = {0.0}; double[] distanceFromCurve = {0.0}; boolean[] rightSide = {false}; com.esri.arcgis.geometry.Point inPoint = new com.esri.arcgis.geometry.Point(_serverContext.createObject(com.esri.arcgis.geometry.Point.getClsid())); inPoint.setX(7640319.87); inPoint.setY(687584.49); com.esri.arcgis.geometry.IPoint outPoint = polyline.returnNearestPoint(inPoint, com.esri.arcgis.geometry.esriSegmentExtension.esriNoExtension); System.out.println("Out X: " + outPoint.getX()); System.out.println("Out Y: " + outPoint.getY()); double distanceFromInPoint = polyline.returnDistance(inPoint); System.out.println("Distance From In Point: " + distanceFromInPoint); System.out.println("Total Polyline Length: " + polyline.getLength()); boolean[] happened = new boolean[10]; int[] newPartIndex = new int[10]; int[] newSegmentIndex = new int[10]; polyline.splitAtPoint(outPoint, true, true, happened, newPartIndex, newSegmentIndex); System.out.println("Segment Count: " + polyline.getSegmentCount()); System.out.println("New Segment Length from FromPoint: " + polyline.getSegment(0).getLength()); System.out.println("New Segment Length from ToPoint: " + polyline.getSegment(1).getLength()); } catch(Exception ex){ ex.printStackTrace(); } } public static void main(String [] args){ PolylineTest2 pt = new PolylineTest2(); pt.queryPoint(); } }

重现步骤

漏洞 ID: NIM001090

软件:

  • No Product Found

当漏洞状态发生变化时获得通知

下载 Esri 支持应用程序

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项