laptop and a wrench

Bug

IPolyline query PointAndDistance method using the Java API fails.

Last Published: August 25, 2014 No Product Found
Bug ID Number NIM001090
SubmittedFebruary 10, 2006
Last ModifiedJune 5, 2024
Applies toNo Product Found
Version found9.1
Program languageJava
Version Fixed9.2
StatusFixed

Workaround

/* * 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(); } }

Steps to Reproduce

Bug ID: NIM001090

Software:

  • No Product Found

Get notified when the status of a bug changes

Download the Esri Support App

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options