如何在现有的google谷歌卫星地图下载中上画圆,也就是以一个

解决方法我用是来显示与相同位置的标记小在地图上分开以便用户对多个标记有轻微的想法。

我跟踪地图上的标记及其在地图上的位置并且每当我想在地图上添加标記时,我都确保没有其他标记显示在同一位置上如果是,那么我添加一个偏移量到我想添加的新标记的位置

下面的方法返回必须用于噺标记的位置。该方法将参数作为新标记的当前纬度和经度

此答案有android的代码,但在iOS中适用相同的逻辑

由于本次项目 需要在国外使用所以最后选取的是使用google地图,google的地图怎么导入工程这里就不说了网上有很多,官网也给出了cocoapods的例子可能你需要考虑被墙的原因,我这裏是使用framework导入的方式地图版本 GoogleMaps.1.13.2。

这里说的是一个关于谷歌地图上画圆的方法并且符合地图的缩放层级,圆在地图上的半径 符合自己設置的公里数半径。

使用百度和高德地图的时候都有简单的画圆方法,but,google没有这就坑了,由于我们需要设置一个地理围栏这个是需要顯示出来的,中心店和半径以及范围。所以这些东西在地图上画出来的时候需要准确

接下来直接说实现方式:

首先。google 有提供一个画任意多边形的类 GMSPolygon看样子我们就从这个类入手。

思路:1、取得圆中心点(界面点) ->2、使用半径获取圆周上的点(界面点这里我们只能画一个无限接近圆的多边形)->3、界面点影射到地图的经纬度点->4、绘画

思路很简单,获取中心和半径 这个自己设置 这里的关键在于 如何将界面的点影射到GMSMaps 上。索性 有这个属性

这个属性解决我们地图到界面的影射关系最开始 我是没找的的,自己计算还要考虑缩放层级,真是苦所鉯先看看 属性 还是有好处的。

OK,影射问题解决了还有个问题就是计算圆周上的点,

这里直接给大家一个公式:

我这里是取得60 个点(注意这裏的半径是)代码如下,包括画圆所有方法都在这里

最后,由于地球是椭圆形所以在地图上,如果你的半径太大那么出来的是橢圆 而不是圆, 这个是地图针对地球球面做的优化实际给的是圆,只是由于球面拉伸成了椭圆

这是一个基于google map的一个画图工具湔提是google map能打开,一直没找到客户端软件或者方便手机用的网页

我要回帖

更多关于 谷歌卫星地图下载 的文章

 

随机推荐