I am using Android runtime SDK 100.0.0 with gradle =compile 'com.esri.arcgisruntime:arcgis-android:100.0.0

763
4
06-19-2017 12:56 AM
KrishnenduDutta
New Contributor

I have a KML file in my local PC in D drive(say). I want to upload this over my Basemap(oceans). How can I achieve it?

Please provide any sample code or example if available.

0 Kudos
4 Replies
AlexanderNohe1
Occasional Contributor III

Two suggestions.  

Store it in your raw resources directory and then load this locally from your android device.

Or

Upload this to ArcGIS Online and then open the map that contains the KML file.

0 Kudos
KrishnenduDutta
New Contributor
import android.graphics.Color;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;
import com.esri.arcgisruntime.ArcGISRuntimeEnvironment;
import com.esri.arcgisruntime.LicenseInfo;
import com.esri.arcgisruntime.concurrent.Job;
import com.esri.arcgisruntime.concurrent.ListenableFuture;
import com.esri.arcgisruntime.geometry.Envelope;
import com.esri.arcgisruntime.geometry.Geometry;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.geometry.SpatialReference;
import com.esri.arcgisruntime.geometry.SpatialReferences;
import com.esri.arcgisruntime.loadable.LoadStatus;
import com.esri.arcgisruntime.mapping.ArcGISMap;
import com.esri.arcgisruntime.mapping.Basemap;
import com.esri.arcgisruntime.mapping.Viewpoint;
import com.esri.arcgisruntime.mapping.view.Graphic;
import com.esri.arcgisruntime.mapping.view.GraphicsOverlay;
import com.esri.arcgisruntime.mapping.view.LayerViewStateChangedListener;
import com.esri.arcgisruntime.mapping.view.MapView;
import com.esri.arcgisruntime.portal.Portal;
import com.esri.arcgisruntime.portal.PortalInfo;
import com.esri.arcgisruntime.security.UserCredential;
import com.esri.arcgisruntime.symbology.SimpleMarkerSymbol;
import com.esri.arcgisruntime.tasks.geodatabase.GenerateGeodatabaseJob;
import com.esri.arcgisruntime.tasks.geodatabase.GenerateGeodatabaseParameters;
import com.esri.arcgisruntime.tasks.geodatabase.GeodatabaseSyncTask;
import org.xmlpull.v1.XmlPullParserException;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.concurrent.ExecutionException;

import static com.esri.arcgisruntime.sample5.esri5.R.raw.linestring;

public class MainActivity extends AppCompatActivity {


    private MapView mMapView;
    private final SpatialReference wgs84 = SpatialReference.create(4326);
    String TAG = "aa";
    GeodatabaseSyncTask gdbSyncTask;
    ArcGISMap map;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mMapView = (MapView) findViewById(R.id.mapView);
        UserCredential credential = new UserCredential("########", "########");
        final Portal portal = new Portal("https://##########-#####.maps.arcgis.com/");
        portal.setCredential(credential);
        portal.loadAsync();
        portal.addDoneLoadingListener(new Runnable() {
            @Override
            public void run() {
                if (portal.getLoadStatus() == LoadStatus.LOADED) {
                    PortalInfo portalInformation = portal.getPortalInfo();
                    String portalName = portalInformation.getPortalName();
                    Log.i(TAG, portalName);
                }
                LicenseInfo licenseInfo = portal.getPortalInfo().getLicenseInfo();
                Log.i(TAG, licenseInfo.toJson());
                ArcGISRuntimeEnvironment.setLicense(licenseInfo);
            }
        });
        Envelope envelope = new Envelope(86.9974, 22.4550, 89.5403, 22.8456, SpatialReferences.getWgs84());
        map = new ArcGISMap(Basemap.createImagery());
        Viewpoint initViewpoint = new Viewpoint(envelope);
        map.setInitialViewpoint(initViewpoint);
        mMapView.setMap(map);

        KmlLayer layer = new KmlLayer(map, linestring, getApplicationContext());
        layer.addLayerToMap(layer);
    }
}



0 Kudos
KrishnenduDutta
New Contributor

This is what I have done so far. But unable to find any Appropriate package(com.esri.arcgisruntime) from this KmlLayer class . i have also put my KML(linesting.kml) in raw folder.I am using gradle : 

compile 'com.esri.arcgisruntime:arcgis-android:100.0.0'

Please help me.

Thanks in advance.

0 Kudos
AlexanderNohe1
Occasional Contributor III

Krishnendu Dutta‌,

Excuse my mistake.  I was thinking back to the previous release.

Currently, I do not believe that KML layers are supported.

Thanks,

Alexander

0 Kudos