Получить точки маршрута на Android с помощью mapquest - PullRequest
1 голос
/ 19 марта 2012

Я использую Java-библиотеку mapquest для Android.На самом деле у меня есть простое приложение для Android с картой, и я могу определить маршрут между двумя точками.То, что мне нужно сделать, это получить гео-точки этого маршрута.Код ниже взят из примеров 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);
    }
});

У объекта routeResponse есть поле serviceResponse типа jsonObject.Одним из элементов этого jsonObject является поле с именем shapePoints.Документация RouteResponse гласит, что поле routeResponse должно иметь массив пар геопоинт.Я не получаю этот массив, но что-то вроде хешированной строки: /:

"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?"

Пожалуйста, помогите мне с забавной строкой shapePoints, чтобы получить гео-точки маршрута.Может быть, есть другой способ получить эти очки.Я пытался гуглить несколько дней, но безрезультатно; /

1 Ответ

2 голосов
/ 19 марта 2012

Строка shapePoints, которую вы видите, на самом деле является сжатым форматом, поэтому она показывает shapePoints, но только не в обычном читаемом необработанном формате.Android Maps API использует MapQuest Directions Web Service для функций маршрутизации.Формат routeResponse по умолчанию в Android API - это cmp6, который является сжатым форматом, который вы видите, потому что обычно более эффективно использовать сжатый формат в приложении.

Вы можете указать веб-службе Directions:отправьте ответ обратно в необработанном формате, установив параметр shapeFormat, который включен в документацию веб-службы Directions в разделе Advanced Routing Options .Обратитесь к Справочному руководству по API Карт Android для получения более подробной информации о настройке параметров маршрута из API Карт Android - ищите метод setOptions на этой странице.

Кроме того, просто хотитедобавим, что * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * • • • • • • • • • • • • • • • • • • • • • • • • • 2. который можно проверить, если у вас есть вопросы по поводу Android или других API-интерфейсов MapQuest, таких как Flash., iOS и т. д.

Пожалуйста, не стесняйтесь спрашивать, нужна ли вам дополнительная помощь!

...