获取应用程序中的漏洞更新
URL 已复制
共享 URL
漏洞
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 支持应用程序
发现关于本主题的更多内容
Esri Community
搜索相关信息
Training
查找与此主题相关的培训
ArcGIS Ideas
探索想法并提供反馈
获取来自 ArcGIS 专家的帮助
联系技术支持部门
下载 Esri 支持应用程序
转至下载选项