一個經(jīng)緯度繪制矩形

? ? ?之前一直做的是圓形電子圍欄醒第,相對比較簡單,因為第三方地圖都有借口可以繪制进鸠;但第三方地圖繪制多邊形都需要每個拐角點都要經(jīng)緯度稠曼,這個跟我現(xiàn)在的項目不符合;因為我只能得到一個經(jīng)緯點客年。

因為電子圍欄的范圍是我們設(shè)置的霞幅,如果長寬都等于r就是正方形,不一樣就是矩形量瓜;通過這些數(shù)據(jù)就可以得到斜邊距離司恳,這個距離就是距離中心點的距離,然后我們再固定距離的方向绍傲,只需要四個點的方向就可以同過下面的方法計算出矩形四個頂點的經(jīng)緯數(shù)據(jù)扔傅,便可以通過地圖的接口來繪制矩形蒜撮。


下面是效果


代碼給大家分享一下

////? CaculateLL.m//? iLe////? Created by Jany on 17/5/22.//? Copyright ? 2017年 apple. All rights reserved.//#import "CaculateLL.h"#include#define KmPerDegree? ? 111.12000071117

#define DegreesPerKm? ? (1.0/KmPerDegree)

#define PI? ? ? ? ? ? ? M_PI

#define TwoPI? ? ? ? ? (M_PI+M_PI)

#define HalfPI? ? ? ? ? M_PI_2

#define RadiansPerDegree? ? (PI/180.0)

#define DegreesPerRadian? ? (180.0/PI)

#define copysign(x,y)? ? ? (((y)<0.0)?-fabs(x):fabs(x))

#define NGT1(x)? ? (fabs(x)>1.0?copysign(1.0,x):(x))

//#define ArcCos(x) (fabs(x)>1?quiet_nan():acos(x)) //Hack

#define ArcCos(x)? (acos(x))

#define hav(x)? ? ? ((1.0-cos(x))*0.5)? ? ? /* haversine */

#define ahav(x)? ? (ArcCos(NGT1(1.0-((x)*2.0))))? /* arc haversine */

#define sec(x)? ? ? (1.0/cos(x))? ? ? ? ? ? /* secant */

#define csc(x)? ? ? (1.0/sin(x))? ? ? ? ? ? /* cosecant */

@implementation CaculateLL

static CaculateLL *caculateLLManager = nil;

+(id)shareInstance

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

caculateLLManager = [[CaculateLL alloc]init];

});

return caculateLLManager;

}

-(CLLocationCoordinate2D)moveLocation:(CLLocationCoordinate2D)startLocation movementInMeters:(double)movementInMeters movementBearing:(double)movementBearing

{

NSLog(@"------%f----%f",movementBearing,movementInMeters);

double? dist = (movementInMeters / 1000);? /* -> great-circle distance (km) */

double? course = movementBearing;? ? ? ? ? /* -> initial great-circle course (degrees) */

double? slt = startLocation.latitude;? ? /* -> starting decimal latitude (-S) */

double? slg = startLocation.longitude;? /* -> starting decimal longitude(-W) */

double? xlt = 0;? ? /* <- ending decimal latitude (-S) */

double? xlg = 0;? ? /* <- ending decimal longitude(-W) */

double? c, d, dLo, L1, L2, coL1, coL2, l;

if (dist > KmPerDegree*180.0) {

course -= 180.0;

if (course < 0.0) course += 360.0;

dist? ? = KmPerDegree*360.0-dist;

}

if (course > 180.0) course -= 360.0;

c? ? = course*RadiansPerDegree;

d? ? = dist*DegreesPerKm*RadiansPerDegree;

L1? = slt*RadiansPerDegree;

slg *= RadiansPerDegree;

coL1 = (90.0-slt)*RadiansPerDegree;

coL2 = ahav(hav(c)/(sec(L1)*csc(d))+hav(d-coL1));

L2? = HalfPI-coL2;

l? ? = L2-L1;

if ((dLo=(cos(L1)*cos(L2))) != 0.0)

dLo? = ahav((hav(d)-hav(l))/dLo);

if (c < 0.0) dLo = -dLo;

slg += dLo;

if (slg < -PI)

slg += TwoPI;

else if (slg > PI)

slg -= TwoPI;

xlt = L2*DegreesPerRadian;

xlg = slg*DegreesPerRadian;

CLLocationCoordinate2D? ll = CLLocationCoordinate2DMake(xlt, xlg);

return ll;

}

@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末排惨,一起剝皮案震驚了整個濱河市稚晚,隨后出現(xiàn)的幾起案子笔诵,更是在濱河造成了極大的恐慌晴埂,老刑警劉巖众羡,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件始衅,死亡現(xiàn)場離奇詭異脚粟,居然都是意外死亡淡诗,警方通過查閱死者的電腦和手機骇塘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門伊履,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人款违,你說我怎么就攤上這事唐瀑。” “怎么了插爹?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵哄辣,是天一觀的道長。 經(jīng)常有香客問我赠尾,道長力穗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任气嫁,我火速辦了婚禮当窗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘寸宵。我一直安慰自己崖面,他們只是感情好,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布梯影。 她就那樣靜靜地躺著巫员,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甲棍。 梳的紋絲不亂的頭發(fā)上简识,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天,我揣著相機與錄音感猛,去河邊找鬼财异。 笑死,一個胖子當著我的面吹牛唱遭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呈驶,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼拷泽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了袖瞻?” 一聲冷哼從身側(cè)響起司致,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎聋迎,沒想到半個月后脂矫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡霉晕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年庭再,在試婚紗的時候發(fā)現(xiàn)自己被綠了捞奕。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡拄轻,死狀恐怖颅围,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情恨搓,我是刑警寧澤院促,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站斧抱,受9級特大地震影響常拓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜辉浦,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一弄抬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧盏浙,春花似錦眉睹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至丐黄,卻和暖如春斋配,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背灌闺。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工艰争, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桂对。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓甩卓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蕉斜。 傳聞我的和親對象是個殘疾皇子逾柿,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容