<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Find task for a local MPK in Java Maps SDK Questions</title>
    <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159595#M453</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;You would need to do...&lt;BR /&gt;&lt;BR /&gt;LocalMapService locMapService = new LocalMapService(Path to mpk);&lt;BR /&gt;locMapService.start(); // start the local service&lt;BR /&gt;String url = locMapService.getUrlMapService(); // this is the URL of the maps service&lt;BR /&gt;// to do find task you need url to a layer&lt;BR /&gt;url += "/0"; // add the ID of a layer&lt;BR /&gt;FindTask findTask = new FindTask(url); // set up your find task&lt;BR /&gt;&lt;BR /&gt;If you look in the ConsoleApp sample (com.esri.client.samples.localserver) you will see this work flow. &lt;BR /&gt;&lt;BR /&gt;A simpler work flow for you could be to use ArcGISLocalFeatureLayer which will create a local server based feature layer and if you call getUrl() that url will be the complete URL including layer ID. LocalMapService and LocalFeatureService are only really intended for when you want to create local services with multiple layers. ArcGISLocalFeatureLayer can be added directly to the map which will take care of any initialisation for you.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks dude, ill check it em both out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;edit - Got it working. just a little hint for those who encounter the problem. Make sure you stop the service [locMapService.Stop()], since you are only allowed 3 instances of a local server (after its doing finding of course)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Dec 2013 14:56:48 GMT</pubDate>
    <dc:creator>IbrahimHussein</dc:creator>
    <dc:date>2013-12-19T14:56:48Z</dc:date>
    <item>
      <title>Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159590#M448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hello, I am testing out the findApp class, I took a look at the sample and I am trying to test it out with a local mpk. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The majority of the code below is from the javaSDK. I made a few changes such as adding a local tpk and mpk. and set the search for parameters by name field (I also try searching just by layerID to see if that worked.) And nothing I tried works. this is whats in the Console everytime it searches. the code is in the 2nd post, as it couldnt fit in a single post. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;com.esri.core.io.EsriSecurityException: EsriSecurityException[code = -10001 msg = User credentials were invalid. Please supply a valid username and password in order to access the secure service.
 at com.esri.core.internal.io.handler.c.a(Unknown Source)
 at com.esri.core.internal.io.handler.r.a(Unknown Source)
 at com.esri.core.internal.io.handler.r.a(Unknown Source)
 at com.esri.core.internal.tasks.d.getServiceCredentials(Unknown Source)
 at com.esri.core.internal.tasks.ags.a.a.a(Unknown Source)
 at com.esri.core.tasks.ags.find.FindTask.execute(Unknown Source)
 at project01.FindApp.onFind(FindApp.java:119)
 at project01.FindApp.access$1(FindApp.java:94)
 at project01.FindApp$2.actionPerformed(FindApp.java:203)
 at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
 at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
 at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
 at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
 at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
 at java.awt.Component.processMouseEvent(Unknown Source)
 at javax.swing.JComponent.processMouseEvent(Unknown Source)
 at java.awt.Component.processEvent(Unknown Source)
 at java.awt.Container.processEvent(Unknown Source)
 at java.awt.Component.dispatchEventImpl(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
 at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
 at java.awt.Container.dispatchEventImpl(Unknown Source)
 at java.awt.Window.dispatchEventImpl(Unknown Source)
 at java.awt.Component.dispatchEvent(Unknown Source)
 at java.awt.EventQueue.dispatchEvent(Unknown Source)
 at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
 at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
 at java.awt.EventDispatchThread.run(Unknown Source)&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT - at project01.FindApp.onFind(FindApp.java:119 --------- findResults = task.execute(params);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;so I am guessing something is wrong with the parameters, I added all layers just to see if I could find anything. and still the same issue. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help or direction would be helpful, thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:07:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159590#M448</guid>
      <dc:creator>IbrahimHussein</dc:creator>
      <dc:date>2021-12-12T16:07:25Z</dc:date>
    </item>
    <item>
      <title>Re: Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159591#M449</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I had to remove the static and public methods to fit the post, but they were unchanged from the SDK. I can post them if needed. thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;// Copyright 2013 ESRI

/***
 * This sample demonstrates executing a FindTask, adding the results to
 *&amp;nbsp; a table, and zooming to a selected result.
 */
public class FindApp {
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; // UI related
&amp;nbsp;&amp;nbsp;&amp;nbsp; JTextField findText = new JTextField("Colorado");
&amp;nbsp;&amp;nbsp;&amp;nbsp; DefaultTableModel tblModelStateInfo;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // JMap
&amp;nbsp;&amp;nbsp;&amp;nbsp; private JMap map;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // our graphics layer for highlighted geometries
&amp;nbsp;&amp;nbsp;&amp;nbsp; private GraphicsLayer graphicsLayer;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // for zooming to a buffered geometry
&amp;nbsp;&amp;nbsp;&amp;nbsp; private static final double BUFFER_DISTANCE = 500000; // 500 km

&amp;nbsp;&amp;nbsp;&amp;nbsp; // results of the Find task execution
&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;FindResult&amp;gt; findResults = null;

&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Constructors
&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; public FindApp() {
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Core functionality
&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * This method creates and executes the FindTask to find the input text
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private void onFind() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tblModelStateInfo.setRowCount(0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // return if input text is not valid
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (findText.getText() == null || findText.getText().isEmpty()) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Find task to find value 'Colorado' in all attributes of dynamic
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // service
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // create a Find task.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindParameters params = new FindParameters();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params.setSearchText(findText.getText());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params.setLayerIds(new int[] { 0, 1, 2,3,4,5,6,7,8});
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params.setSearchFields(new String[]{"Streets"});//search only the named field
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; params.setOutputSpatialRef(map.getSpatialReference());

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // execute the query
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FindTask task = new FindTask("C:\\mpk.mpk");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; findResults = task.execute(params);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (findResults == null){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (FindResult result : findResults) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tblModelStateInfo.addRow(new Object[] {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.getAttributes().get(result.getDisplayFieldName()),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Integer.valueOf(result.getLayerId()), result.getLayerName(),
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result.getFoundFieldName(), result.getValue() });
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } catch (Exception e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; // Private methods
&amp;nbsp;&amp;nbsp;&amp;nbsp; // ------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Creates a window.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return a window.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private JFrame createWindow() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JFrame window = new JFrame("Find Application");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.setBounds(100, 100, 1000, 700);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.getContentPane().setLayout(new BorderLayout(0, 0));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; window.addWindowListener(new WindowAdapter() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void windowClosing(WindowEvent windowEvent) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.windowClosing(windowEvent);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.dispose();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return window;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Creates a map.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @return a map.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private JMap createMap() throws Exception {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final JMap jMap = new JMap();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Base Layer - with US topology, focus on U.S by default
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final ArcGISLocalTiledLayer baseLayer = new ArcGISLocalTiledLayer(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "C:\\tpk.tpk"); //local tpk added here
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jMap.setExtent(new Envelope(-15000000, 2000000, -7000000, 8000000));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jMap.getLayers().add(baseLayer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Dynamic Layer - US Cities and States that we will search
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final ArcGISLocalDynamicMapServiceLayer layer = new ArcGISLocalDynamicMapServiceLayer(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "C:\\mpk.mpk"); // I added the local mpk here
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; layer.setOpacity(0.6f);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jMap.getLayers().add(layer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Graphics Layer - to highlight a selected feature
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; graphicsLayer = new GraphicsLayer();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; jMap.getLayers().add(graphicsLayer);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return jMap;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; /**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Display a geometry on the map for the selected table row
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param geometryType
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * @param geometry
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; private void highlightGeometry(Type geometryType, Geometry geometry) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (geometryType == null || geometry == null) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Add a graphic for the selected feature to the graphics layer
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; graphicsLayer.removeAll();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (geometryType) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case POINT:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; graphicsLayer.addGraphic(new Graphic(geometry,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new SimpleMarkerSymbol(Color.RED, 8,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleMarkerSymbol.Style.DIAMOND)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case POLYLINE:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; graphicsLayer.addGraphic(new Graphic(geometry,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new SimpleLineSymbol(Color.RED, 4,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SimpleLineSymbol.Style.SOLID)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case POLYGON:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; graphicsLayer.addGraphic(new Graphic(geometry,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new SimpleFillSymbol(Color.RED)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Zoom to the highlighted graphic
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // -----------------------------------------------------------------------------------------
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Geometry geometryForZoom = GeometryEngine.buffer(geometry,
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.getSpatialReference(), BUFFER_DISTANCE, map
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getSpatialReference().getUnit());
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.zoomTo(geometryForZoom);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

}
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:25:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159591#M449</guid>
      <dc:creator>IbrahimHussein</dc:creator>
      <dc:date>2021-12-11T08:25:00Z</dc:date>
    </item>
    <item>
      <title>Re: Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159592#M450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can't run the FindTask against a path to your mpk - FindTask task = new FindTask("C:\\mpk.mpk") - you need to supply a URL.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To get the URL you will need to create a local layer from your MPK and then use the URL of that in the constructor. If you look at the samples in com.esri.client.samples.localserver you will see how to create local layers. You can then use getURL() on the local layer to get a URL for your find task.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Dec 2013 14:44:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159592#M450</guid>
      <dc:creator>ColinAnderson1</dc:creator>
      <dc:date>2013-12-18T14:44:47Z</dc:date>
    </item>
    <item>
      <title>Re: Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159593#M451</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;You can't run the FindTask against a path to your mpk - FindTask task = new FindTask("C:\\mpk.mpk") - you need to supply a URL.&lt;BR /&gt;&lt;BR /&gt;To get the URL you will need to create a local layer from your MPK and then use the URL of that in the constructor. If you look at the samples in com.esri.client.samples.localserver you will see how to create local layers. You can then use getURL() on the local layer to get a URL for your find task.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks, I was just about to give up. ill look into that class.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since I want the server to start automatically and know which service to run, can I just do&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LocalMapService locMapService = new LocalMapService(Path to mpk);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;String url = LocMapService.getUrl(); ???&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cant seem find find any documentation on the issue, sample isnt really that clear.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Dec 2013 15:20:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159593#M451</guid>
      <dc:creator>IbrahimHussein</dc:creator>
      <dc:date>2013-12-18T15:20:06Z</dc:date>
    </item>
    <item>
      <title>Re: Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159594#M452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You would need to do...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LocalMapService locMapService = new LocalMapService(Path to mpk);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;locMapService.start(); // start the local service&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;String url = locMapService.getUrlMapService(); // this is the URL of the maps service&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;// to do find task you need url to a layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;url += "/0"; // add the ID of a layer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;FindTask findTask = new FindTask(url); // set up your find task&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you look in the ConsoleApp sample (com.esri.client.samples.localserver) you will see this work flow. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;A simpler work flow for you could be to use ArcGISLocalFeatureLayer which will create a local server based feature layer and if you call getUrl() that url will be the complete URL including layer ID. LocalMapService and LocalFeatureService are only really intended for when you want to create local services with multiple layers. ArcGISLocalFeatureLayer can be added directly to the map which will take care of any initialisation for you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2013 08:20:07 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159594#M452</guid>
      <dc:creator>ColinAnderson1</dc:creator>
      <dc:date>2013-12-19T08:20:07Z</dc:date>
    </item>
    <item>
      <title>Re: Find task for a local MPK</title>
      <link>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159595#M453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;You would need to do...&lt;BR /&gt;&lt;BR /&gt;LocalMapService locMapService = new LocalMapService(Path to mpk);&lt;BR /&gt;locMapService.start(); // start the local service&lt;BR /&gt;String url = locMapService.getUrlMapService(); // this is the URL of the maps service&lt;BR /&gt;// to do find task you need url to a layer&lt;BR /&gt;url += "/0"; // add the ID of a layer&lt;BR /&gt;FindTask findTask = new FindTask(url); // set up your find task&lt;BR /&gt;&lt;BR /&gt;If you look in the ConsoleApp sample (com.esri.client.samples.localserver) you will see this work flow. &lt;BR /&gt;&lt;BR /&gt;A simpler work flow for you could be to use ArcGISLocalFeatureLayer which will create a local server based feature layer and if you call getUrl() that url will be the complete URL including layer ID. LocalMapService and LocalFeatureService are only really intended for when you want to create local services with multiple layers. ArcGISLocalFeatureLayer can be added directly to the map which will take care of any initialisation for you.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks dude, ill check it em both out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;edit - Got it working. just a little hint for those who encounter the problem. Make sure you stop the service [locMapService.Stop()], since you are only allowed 3 instances of a local server (after its doing finding of course)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2013 14:56:48 GMT</pubDate>
      <guid>https://community.esri.com/t5/java-maps-sdk-questions/find-task-for-a-local-mpk/m-p/159595#M453</guid>
      <dc:creator>IbrahimHussein</dc:creator>
      <dc:date>2013-12-19T14:56:48Z</dc:date>
    </item>
  </channel>
</rss>

