2017-09-18 2 views
1

Je fais la programmation Android pour la première fois, je veux afficher une couche GeoServer en utilisant la couche de carte ArcGis SDK. J'ai fait le code mais ça ne fonctionne pas, s'il vous plaît dites-moi ce que je fais mal.Je veux publier geosever couche dans l'application android, en utilisant arcgis SDK, j'ai fait le code, mais il ne fonctionne pas, s'il vous plaît dites-moi ce que je fais mal?

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.subrata.mymap.MainActivity"> 

<com.esri.android.map.MapView 
    android:id="@+id/map" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    mapoptions.MapType="Aerial" 
    mapoptions.center="28, 77" 
    mapoptions.ZoomLevel="10"> 
</com.esri.android.map.MapView> 
</RelativeLayout> 

mainactivity.java

package com.example.subrata.mymap; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import com.esri.android.map.MapView; 
import com.esri.android.map.ogc.WMSLayer; 


public class MainActivity extends AppCompatActivity { 
MapView mMapView; 
WMSLayer wmsLayer; 
String wmsURL; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mMapView = (MapView)findViewById(R.id.map); 

    wmsURL = "http://localhost:8081/geoserver/NFR-SR/wms"; 
    wmsLayer = new WMSLayer(wmsURL); 
    wmsLayer.setImageFormat("application/openlayers"); 
    // available layers 
    String[] visibleLayers = {"NFR-SR:Ridgeline_SR"}; 
    wmsLayer.setVisibleLayer(visibleLayers); 
    wmsLayer.setOpacity(0.5f); 
    mMapView.addLayer(wmsLayer); 


    mMapView.setEsriLogoVisible(false); 
    mMapView.enableWrapAround(true); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

Répondre

1

peut-elle dire pas vraiment ce que vous entendez par ne fonctionne pas sans journal ni explication. Voici quelques-unes des raisons possibles:

  1. ne peut pas atteindre le serveur à l'adresse http://localhost:8081/geoserver/NFR-SR/wms
  2. NFR-SR
  3. Nom de la couche: Ridgeline_SR pas trouvé
  4. service de carte ne supporte pas l'application/OpenLayers
  5. Il pourrait même être cela fonctionne mais vous visualisez l'étendue de la carte qui ne contient aucune donnée.
+0

probablement 1 & 3 - sauf si vous utilisez GeoServer sur le téléphone, son adresse ne sera pas localhost –