【发布时间】:2017-11-24 09:55:47
【问题描述】:
我正在使用 MapLoader#getMapPackageAtCoordinate 方法来查找我应该下载哪个离线包。问题是我从不想下载国家(法国)包(出于数据使用考虑)。
文档中明确表示对于某些坐标,该方法可能无法找到最小(地区)的包,而是返回国家包。但我希望在尝试使用该地区的多个地理坐标时能够获得最小的包裹。
对于某些地区(诺曼底、布列塔尼、Nouvelle-Acquitaine),getMapPackageAtCoordinate 几乎总是返回地区包。但对于其他地区(Ille-de-France、Pays-De-La-Loire),总是退回法国包裹。
有没有办法改善这种行为以获得区域包?
谢谢
【问题讨论】:
-
根据之前创建此特定 API 的经验,请勿使用它。正如你所发现的那样,它是越野车并且充满了漏洞。在内部,它会执行反向地理编码来查找国家/地区,然后尝试模糊匹配结果。
-
感谢您提供清晰而准确的建议。我希望我早点知道,但迟到总比没有好!你会推荐什么?我的用例是设备需要离线地图,但我想下载尽可能少的数据,而且我事先不知道车辆将开往何处。
-
存储每个区域的边界框列表,然后与您要下载的区域相交。例如:gist.github.com/graydon/11198540
-
在我的应用程序的早期版本中,我使用地图包 ID 来下载特定的地图包,假设这些 ID 永远不会改变。但是他们今年确实发生了变化(!!),当他们这样做时,新设备无法下载离线地图。这就是我决定依赖 getMapPackageAtCoordinate 的原因。现在我想按照您的建议使用包名称来代替,但不能保证将来名称不会更改...谢谢您的支持。
标签: android here-api offline-caching