由于本次项目 需要在国外使用,所以最后选取的是使用google地图,google的地图怎么导入工程这里就不说了,网上有很多,官网也给出了cocoapods的例子。可能你需要考虑被墙的原因,我这里是使用framework导入的方式,地图版本 GoogleMaps.1.13.2。
这里说的是一个关于谷歌地图上画圆的方法,并且符合地图的缩放层级,圆在地图上的半径 ,符合自己设置的公里数半径。
使用百度和高德地图的时候,都有简单的画圆方法,but,google没有,这就坑了,由于我们需要设置一个地理围栏,这个是需要显示出来的,中心店和半径,以及范围。所以这些东西在地图上画出来的时候需要准确。
接下来直接说实现方式:
首先。google 有提供一个画任意多边形的类 GMSPolygon,看样子我们就从这个类入手。
思路:1、取得圆中心点(界面点) ->2、使用半径获取圆周上的点(界面点,这里我们只能画一个无限接近圆的多边形)->3、界面点影射到地图的经纬度点->4、绘画
思路很简单,获取中心和半径 这个自己设置, 这里的关键在于 如何将界面的点影射到GMSMaps 上。索性 有这个属性
/**
* Returns a GMSProjection object that you can use to convert between screen
* coordinates and latitude/longitude coordinate
这里说的是一个关于谷歌地图上画圆的方法,并且符合地图的缩放层级,圆在地图上的半径 ,符合自己设置的公里数半径。
使用百度和高德地图的时候,都有简单的画圆方法,but,google没有,这就坑了,由于我们需要设置一个地理围栏,这个是需要显示出来的,中心店和半径,以及范围。所以这些东西在地图上画出来的时候需要准确。
接下来直接说实现方式:
首先。google 有提供一个画任意多边形的类 GMSPolygon,看样子我们就从这个类入手。
思路:1、取得圆中心点(界面点) ->2、使用半径获取圆周上的点(界面点,这里我们只能画一个无限接近圆的多边形)->3、界面点影射到地图的经纬度点->4、绘画
思路很简单,获取中心和半径 这个自己设置, 这里的关键在于 如何将界面的点影射到GMSMaps 上。索性 有这个属性
/**
* Returns a GMSProjection object that you can use to convert between screen
* coordinates and latitude/longitude coordinate