Question

I'm using mapquest java library for Android. Actualy I have simple android application with map and I can determine route between two locations. The thing I need to do is to get geopoints of this route. The code below is from samples of mapquest.

routeManager.setRouteCallback(new RouteManager.RouteCallback() {

    public void onSuccess(RouteResponse routeResponse) {
    clearButton.setVisibility(View.VISIBLE);
    if (showItineraryButton.getVisibility() == View.GONE &&
        showMapButton.getVisibility() == View.GONE) {
        showItineraryButton.setVisibility(View.VISIBLE);
    }
    createRouteButton.setEnabled(true);
    }
});

The routeResponse object has a serviceResponse field of jsonObject type. One of the elements of this jsonObject is field called "shapePoints". The documentation of the RouteResponse sais that routeResponse field should have an array of geopoints pairs. I'm not getting this array, but some kind of hashed string :/ :

"shapePoints":"gvxpjAfxthgEkF?cQ]yQ?umA?qMOog@Oej@?u|Ak@qv@OcLOoHiBcGwD_IoHiCkAoCOmFN_DjAyBhBaBhC}JpR??gToS_b@}_@oIaHee@{`@k_@c[eo@se@ce@q\\iHsEgh@q\\}m@__@_i@uY_IeEyWgNav@}_@cjAum@s~@sf@{[eOc[kLiMeE{JwCgTsFmd@oIuwAkVwiHqoAux@wNgh@oIuYuEqMiBuJ{AyLyB}JyB_SeEmPeEuSsFka@{Lse@wMsPeFcLwCqjAm^ey@mUuiD{_Akp@aReTaGoSuE{[sGm_@uDku@sFyL}@eJ{@eJkAgJkA{J{BwIgCyGyBoNcGaNaHkd@iWgT{KyQ}JmUkKwX{KmqBcp@a_B}h@cVaIab@wMiRcGgc@uNa`Ae[_d@uNu^{L}JwCsZ}JyRaGwXsGe^oHgc@qHuaC{`@{nAmT}w@wMykAaSchBiWoqAqQq`AwNqv@{KyyA_Tia@cGiMgCmF}@mE{@kPiCmUuE}c@kKeo@ePmn@uO{OgDcQwC{QiCqQiBe`@wCsZ{Awr@}@}TMm_@Ogr@N_]O{`@]se@O{y@]yH?sKL_NzAmPxC{JhB}OhBmP|@wNl@{O\\ka@xBiRjA}^hCmd@xBoXz@wb@?uhA]iW{@qRiCiWcGcVoH}EkBeTaHeJyBaNkA{Jm@aS{@_S?iWl@cQxAaXfEuY|Ic[hMsP~HgO~IiWnRmd@~^yLlIi\\zVir@ng@{TfOiR|J{Q`GiMvDsPfCoIlA}JjA??_I]kK\\mOhBuOhCyg@fNc`@lUcQzJkP`I{j@bZ_hAhl@y`@nSwc@jVmYhMyWhMyLpGab@|ToqArp@ip@p[ej@r[}^lTuOlKqMjKeOfNiMlK_DtDyLtOoIzLuPdYaQtYee@hv@cQdZuT`]yQlUmUxV_InI_s@fw@_XfYeEtEag@xk@kFrF}OpQmUvYmOzT}i@~|@cQlUw]fc@}T|T_XxViRvNkFdE{GdE{J`IaIrF_IrEoN`Is_@pQiR~Hwr@~SwNfDo{Az`@et@pQcLtEc[pGob@pHw]hBiRzAaX?_X{@oXgDmKkAsKyBeTuF}OeEcVoI??cVoSoIsFcGeE_SyLuUoIkPsFcL{AcQuDwSyByf@oJwSsE}OqH{O{KoNwNgJ_IsFeEiMcGkKkA_N]??cLeEqCwD{@_Il@ku@z@ofANag@Tud@Ns[|@ux@pAikAbB}}@NiLhBkiA?m~@?mhA?cp@?ag@?mJ?kiA?cQ?iM?iM?sZ?ee@Nia@?}gA?afATud@?kV?wM?qoANoqAe@qR}@}JeE{K_IkKiCeF_DaGsAgEe@eEOgD?gD?iBNyB|@wCxBcGjAwD~CsFxGoHbByCzEwMd@cG?cP?gc@?yk@{@kLcBcGVkK?kK?{`@??kB?"

Please help me with the funny shapePoints string, to get geopoints of the route. Maybe there is a different way to get those points. I was trying to google it for few days but without any bigger results ;/

Was it helpful?

Solution

The shapePoints string that you are seeing is actually a compressed format, so it is showing the shapePoints, but just not in a regular, readable raw format. The Android Maps API uses the MapQuest Directions Web Service for routing functions. The default routeResponse format in the Android API is cmp6, which is the compressed format that you are seeing, because it is generally more efficient to use the compressed format in an application.

You can tell the Directions Web Service to send the response back in a raw format by setting the shapeFormat parameter, which is included in the Directions Web Service documentation under the Advanced Routing Options section. Check out the Android Maps API Reference Guide for more specific information about setting the route options from within the Android Maps API -- look for the setOptions method on this page.

Also, just want to add that there is a Android Maps API forum on the MapQuest Developer Network and it is also a good resource to check when you have questions about the Android or other MapQuest APIs, like Flash, iOS, etc.

Please don't hesitate to ask if you need more assistance!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top