引言
我是一名Android开发人员,并且...
我碰巧完成了一个小项目(〜500h),一开始就决定使用Yandex.Maps API,因为如果有我们的项目,为什么要在莫斯科使用Google地图。 现在,我将告诉您一切如何。
我没有进行深入的研究,也不会公开任何秘密。 但是,如果您像我一样需要(昨天)非常快地开始在您的项目中使用卡片,我希望我可以帮助您节省一些时间。
如果您太懒惰而无法阅读,或者您立即需要一个结论,我会将其发送到最后一个“动作4:这是结尾/ TL; DR”
行动0:定义
让我们从定义开始:什么,为什么,为什么。
任务 :显示莫斯科地图,用大头针指示特定位置,以便能够建立从当前位置到特定点(或多个点)的路线。
技术 :Yandex.Maps API。 参考下面的文档[1]。
总计 :阅读文档,实现功能。
一切看起来都很简单,可能会出错。
步骤1:搜寻
在研究文档之前,您需要先找到它。 搜索Yandex,我们当然会在Google中-我们会找到[2]或 [2] .ru [3]。 我们是开发人员,我们看到“针对开发人员”按钮-单击。 巨大的“ Maps API”图标看起来像我们所需要的! (这是一个陷阱!)
在“ ... /地图” [4]中,我们仅在等待无尽的搜索,失望和痛苦。 这并没有引导我找到必要的文档。
我们返回上一步,向下滚动并找到MapKit [5]-就在这里。 这里的导航非常令人难过,所以这里有重要的链接-android示例[6]和文档[7](有时您有时可以在这里找到有用的信息)。
行动2:走吧
查找入门和入门。 一开始,一切都很简单。
在“第3步:设置库”上出现问题。 视图和工厂必须分别启动和停止,否则,如我们所知,将无法进行任何操作。 怎么了 如果开始但不开始,或者稍后再开始,将会发生什么? 如果有几个视图,那么每个视图都需要一个工厂,或者是一个工厂?
也许这只是QuickStart,然后我们会找到详细的说明! (不)
让我们看看文档中的内容。 仅此而已。 仅生成带有注释的文档,例如:
Class MapKitFactory Methods getInstance() - Gets the MapKit factory instance. initialize(Context context) - Initializes the MapKit factory. setApiKey(String apiKey) - Sets the API key to use for requests.
谢谢Yandex。
好的,在github上还有另一个使用实例的项目[8]。 在每个活动类中,都有关于它的用途以及为什么需要它的注释(在文档之后,这只是命运的礼物)。 有几种方案:创建自定义地图图层,为汽车构建路线,使用地图上的对象以及其他一些方案。
api看起来功能强大吗? 是的
是否清楚在比示例复杂的情况下如何使用它? 否(
如何理解呢? ¯_(ツ)_ /¯根据研究结果深入研究代码,出售一本关于我发现的书。
行动3:发展
任务1:显示地图
我没有遇到任何困难,一切都在指南中。
任务2:显示图钉
我们需要“ MapObjectsActivity.java”,我们要寻找的是地标,我们在代码中查找以了解如何处理它们。
任务3:建立路线
我们的朋友是“ MasstransitRoutingActivity.java”。 您可以要求不同的路线:仅乘汽车,只能步行等等。 可以肯定的是,您仍然可以考虑地铁和其他不同的因素,但是我没有回避。
附加任务:正向和反向定位。 我们还必须能够确定位置。 直接地理编码-按名称确定坐标,反之-按坐标确定名称。
为了解决这个问题,您将不得不返回搜索并找到js的文档[9]。 似乎更加详细和庞大(我很羡慕)。 我们需要一个“ HTTP地理编码请求” [10]-很清楚这是什么以及如何使用它。 这取决于在手机上实现http请求响应。
动作4:这是结束/ TL; DR
一般结果:
Yandex卡很酷。 如何使用它们尚不清楚。
很好的文档来“触摸”服务。 糟糕的文档无法解决。 链接的结构是“您会发现辣根”,搜索结果的质量是“这里是轮子,正在滚动。 然后您自己可以轻松地发明出汽车,火箭弹,潜艇。”
重点:
如何在项目中显示地图? 链接[7],这里的一切都很简单。
如何在卡上添加图钉? 关键字地标,MapObjects。 搜索样品。
如何建立路线? 关键字MasstransitRouting。 搜索样品。
怎么做? 搜索样品。 如果不存在,那么您有问题。
参考文献:
[1] -https://tech.yandex.com/maps/
[2] -https://tech.yandex.com/
[3] -https://tech.yandex.ru/
[4] -https://tech.yandex.com/maps/
[5] -https://tech.yandex.com/maps/mapkit/
[6] -https://github.com/yandex/mapkit-android-demo
[7] -https://tech.yandex.com/maps/doc/mapkit/3.x/concepts/about-docpage/
[8] -https://github.com/yandex/mapkit-android-demo/tree/master/src/main/java/com/yandex/mapkitdemo
[9] -https://tech.yandex.com/maps/doc/jsapi/2.1/quick-start/index-docpage/
[10] -https://tech.yandex.com/maps/doc/geocoder/desc/concepts/input_params-docpage/