Tutorial (En) Advanced useAdd WMS layer
Map Swipe on Android
Start New Project
-
Open Android Studio and Create new project
-
Setup project name
-
Select minimum requirment Android SDK (API 15 : Android 4.0.3)
-
Select blank activity
-
Fill name of activity
Getting the Ramani API Framework for Android
The Ramani API Framework for Android is distributed as a zip file containing a static framework.
Give some permissons
In most cases, you will have to set the following authorizations in your AndroidManifest.xml:
`<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />`
Android 6.0+ devices require you have to check for "dangerous" permissions at runtime. Ramani requires the following dangerous permissions: WRITE_EXTERNAL_STORAGE and ACCESS_COARSE_LOCATION/ACCESS_FINE_LOCATION.
Create Map Layout
Create a "src/main/res/layouts/activity_main.xml" layout like this one. With Android Studio, it probably created one already called. The default is "src/main/res/layouts/activity_main.xml":
`<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.ujuizi.ramani.views.MapView android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>`
Write view lines of code
To start using Ramani service you need Ramani API and you can create on this page. We now create the main activity (MainActivity.java):
`public class MainActivity extends AppCompatActivity implements OnMapReadyCallback, GoogleMap.OnMapClickListener {
private GoogleMap map;
private static final String layerID = "simS3seriesCoverGlobal/coverclass";
private TileOverlay mTileOverlay;
private MapFragment mapFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RSMapServices.apiKey("", "", this);
mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
LatLng point = new LatLng(52.3756, 6.4819);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(point, 8.0f));
TileProvider tp = RSMapServices.getMap(layerID);
if (tp!= null){
mTileOverlay = map.addTileOverlay(new TileOverlayOptions().tileProvider(tp));
}
JSONObject metadata = RSMapServices.getMetadata(layerID);
System.out.println("metadata :"+metadata);
Log.e("RMSERVICE", "metadata :"+metadata);
}
}`
And that's enough to give it a try, and see this view. to change the map view just drag the slider.
Store your Geometry points
We now add code to store the geometry points, add this code into MainActivity.java
`@Override
public void onMapClick(LatLng latLng) {
Map<String,String> fields = new HashMap<String,String>();
fields.put("id", "50");
JSONObject jo = RSMapServices.storePoint("layerID", fields, latLng);
return false;
}`