Skip to main content

Nearby Search Widget

Introduction​

The Mappls Nearby Widget makes it easy to integrate the functionality to search nearby POIs for selected categories in your Android application. The Nearby Search widget provided as a means to enable radially search for Nearby Places on Mappls Maps.

The widget offers the following basic functionalities:

  • Ability to search for nearby places directly with Mappls Maps visual interface.

  • A single method to initiate nearby search across all categories of places available on Mappls.

  • Ability to get information from Mappls Nearby Search widget through a callback.

This can be done by following simple steps.

Dependencies​

  • Add below dependency in your app-level build.gradle
   implementation 'com.mappls.sdk:nearby-ui:1.0.0'

Step 2 :- Adding Credentials​

Add your API keys to the SDK (in your application's onCreate() or before using map)

Java​

MapplsAccountManager.getInstance().setRestAPIKey(getRestAPIKey());      
MapplsAccountManager.getInstance().setMapSDKKey(getMapSDKKey());
MapplsAccountManager.getInstance().setAtlasClientId(getAtlasClientId());
MapplsAccountManager.getInstance().setAtlasClientSecret(getAtlasClientSecret());
Mappls.getInstance(applicationContext);

Kotlin​

MapplsAccountManager.getInstance().restAPIKey = getRestAPIKey()     
MapplsAccountManager.getInstance().mapSDKKey = getMapSDKKey()
MapplsAccountManager.getInstance().atlasClientId = getAtlasClientId()
MapplsAccountManager.getInstance().atlasClientSecret = getAtlasClientSecret()
Mappls.getInstance(applicationContext)

Step 3 :- Launching Nearby Widget​

There are two ways to implement Nearby Search widget:

  • Using MapplsNearbyFragment
  • Using MapplsNearbyActivity

MapplsNearbyFragment​

Add MapplsNearbyFragment in your activity:

java​

MapplsNearbyFragment nearbyFragment = MapplsNearbyFragment.newInstance();

getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, nearbyFragment, MapplsNearbyFragment.class.getSimpleName())
.commit();

Kotlin​

val nearbyFragment: MapplsNearbyFragment= MapplsNearbyFragment.newInstance()
supportFragmentManager.beginTransaction().add(R.id.fragment_container, nearbyFragment, MapplsNearbyFragment::class.java.simpleName)
.commit()

To get the selected nearby place use IMapplsNearbyCallback interface:

Java​

nearbyFragment.setMapplsNearbyCallback(new IMapplsNearbyCallback() {  
@Override
public void getNearbyCallback(NearbyAtlasResult nearbyAtlasResult) {
// Select place
}
});

Kotlin​

nearbyFragment.setMapplsNearbyCallback(object : IMapplsNearbyCallback {  
override fun getNearbyCallback(nearbyCallback: NearbyAtlasResult) {
//Select place
}
})

MapplsNearbyActivity​

Add MapplsNearbyActivity in your activity:

java​

 Intent intent = new MapplsNearbyWidget.IntentBuilder().build(this);   
startActivityForResult(intent, 101);

Kotlin​

val intent = MapplsNearbyWidget.IntentBuilder().build(this)   
startActivityForResult(intent, 101)

To get the selected POI:

java​

@Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {    
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 101 && resultCode == RESULT_OK) {
NearbyAtlasResult result = MapplsNearbyWidget.getNearbyResponse(data);
} }

Kotlin​

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {    
super.onActivityResult(requestCode, resultCode, data)
if(requestCode == 101 && resultCode == Activity.RESULT_OK) {
val place: NearbyAtlasResult? = MapplsNearbyWidget.getNearbyResponse(data!!)
} }