java - 使用 mapquest 在 Android 上获取路线点

标签 java android mapquest

我正在为 Android 使用 mapquest java 库。实际上,我有一个带 map 的简单 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 对象有一个 jsonObject 类型的 serviceResponse 字段。此 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 字符串帮助我获取路线的地理点。也许有不同的方法来获得这些分数。我试着用谷歌搜索了几天,但没有任何更大的结果;/

最佳答案

您看到的 shapePoints 字符串实际上是一种压缩格式,因此它显示了 shapePoints,但不是常规的、可读的原始格式。 Android map API 使用 MapQuest Directions Web Service用于路由功能。 Android API 中的默认 routeResponse 格式是 cmp6,这是您看到的压缩格式,因为在应用程序中使用压缩格式通常效率更高。

您可以通过设置 shapeFormat 参数告诉 Directions Web 服务以原始格式发回响应,该参数包含在 Advanced Routing Options 下的 Directions Web 服务文档中部分。查看Android Maps API Reference Guide有关从 Android map API 中设置路线选项的更多具体信息,请查找此页面上的 setOptions 方法。

此外,只想补充一点,有一个 Android Maps API forumMapQuest Developer Network 上当您对 Android 或其他 MapQuest API(如 Flash、iOS 等)有疑问时,它也是一个很好的检查资源。

如果您需要更多帮助,请随时询问!

关于java - 使用 mapquest 在 Android 上获取路线点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9761956/

相关文章:

android - Marshmallow 上的分析损坏了吗?

MapQuest API key 不再有效

java - 使用 JOOQ DSL API 在 VALUES() 上加入表

java - jsp中的日期格式

java - 为什么图像质量下降?

java - SimpleCursorAdapter 删除值

java - Android studio 1.2 Java 7 无法创建窗口纹理

java - 如何在一行代码中配置 JacksonJaxbJsonProvider?

javascript - 此页第 0 行字符 0 代码 0 上的脚本发生错误