如何解决静态地图和折线的 Mapbox API 请求
我正在改写我之前提出的一个问题,希望它能给我一些反馈。
我需要从 MapBox 生成一个静态地图,显示两个端点和它们之间的折线路线。下面概述的方法是我正在使用的方法。它有时有效,有时无效——这就是让我发疯的原因。
首先,我使用两个 GPS 端点发出生成折线的 API 请求。然后我使用带有两个端点和折线的第二个 API 请求来生成静态地图。第一部分似乎总是有效。我得到了一条编码折线,我可以通过在线解码工具运行它,它可以很好地显示路径上的各个点,但是从 MapBox 生成地图的第二步有时会给我预期的地图,有时会给我一个错误代码。代码通常是 {"message":"Not Found"},但有时我会收到一个 {"message":"Not Authorized - No Token"} 错误代码。
我将此 API 与两个端点一起使用以获取具有折线的 JSON 文件: https://api.mapbox.com/directions/v5/mapbox/driving/POINT1;POINT2?access_token=TOKEN
这很好用...
点 1 = -87.321536,36.584454
点 2 = -104.793676,38.749513
折线 = }kh~Ez{}sO|HUuHmj@uhHbOyAla@kisAdelC|aMf~w@egO|uaAahfBr{|@w_@sAozkccwFsp@v]__w@hjFjf@bdCkaJhmzAiyXtzb@fJ|{@{p[|~yErtBdacE{x^vkvHrZfuKo[tpBfxSrcuBocgpi_AqhCvjb@wgAvfsDhyc@fkrD~mD~bkDayD~ywCsui@vjmEoyBpk|AiOhHrvEdueApda@huoA|v[zuhFsySvwaAvbD
wqHxXpwDYj@riJULheEfjXh {1}}hAkEY~@kHseBlGyC^kA
地图(耶!)
这不起作用...
点 1 = -87.321536,36.584454
点 2 = -85.855218,37.690038
折线 = }kh~Ez{}sO|HUtCurC}xCkhC}~BqvIuc_@o~l@oaI}aUrs@kkL}~Iso\qHoyGsiKa^gI
OclZkdCw]mgEwyDogLgfBatEubCmkGxa@icLec{}TwgD [zFyIk~Bts@
没有地图:-(
这是一个更大项目的一小部分,我正在自动化生成项目报告的过程,但问题不在于我的 jQuery/AJAX 代码。这是我的 API 和/或 MapBox 的问题。如果有更好/更快/更容易获得这些地图的方法,那么我绝对愿意接受建议,因为这似乎不是最有效的方法。我将从计算机生成这些报告。我不担心带宽或电话应用程序的缩小。只要我每次都能始终如一地生成地图,该文件就可以很麻烦。
解决方法
Steve 的评论暗示了正确的解决方案,但只是为了让它绝对清楚 - 发生这种情况是因为您没有正确编码请求中的路径折线。尤其是折线有一个坏习惯,即包含会破坏 URI 的保留字符,除非在请求时正确编码。
当我使用 url encode decode 之类的简单工具对路径叠加层的折线部分进行编码时,我能够使您的请求有效 as expected:
https://api.mapbox.com/styles/v1/mapbox/streets-v11/static/pin-s-a+9ed4bd(-87.321536,path-5+f44-0.5(%7Dkh~Ez%7B%7DsO%7CHUtCurC%7DxCkhC%7D~BqvIuc_%40o~l%40oaI%7DaUrs%40kkL%7D~Iso%2FqHoyGsiKa%60TpQcRdlGusK_DEiz%40w%5EcwOakJurAizT%7BhCugF_bBenSs%60OclZkdCw%5DmgEwyDogLgfBatEubCmkGxa%40icLe_Do_Spf%40cw%5D%7DsEgOaDgT%7B%5BzFyIk~Bts%40)/auto/500x300?access_token=MAPBOX_ACCESS_TOKEN
⚠️ 免责声明:我目前在 Mapbox 工作 ⚠️
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。