iOS 百度地圖判斷點(diǎn)是否在多邊形之內(nèi)

是閉合區(qū)域的話,可以使用下邊的方法
BMKGeometry.h
/**
*判斷點(diǎn)是否在多邊形內(nèi)
*@param point 待判斷的平面坐標(biāo)點(diǎn)
*@param polygon 目標(biāo)多邊形的頂點(diǎn)數(shù)組
*@param count 目標(biāo)多邊形頂點(diǎn)數(shù)組元素個(gè)數(shù)
*@return 如果在內(nèi),返回YES,否則返回NO
*/
UIKIT_EXTERN BOOL BMKPolygonContainsPoint(BMKMapPoint point, BMKMapPoint *polygon, NSUInteger count);

/**
*判斷點(diǎn)是否在多邊形內(nèi)
*@param point 待判斷的經(jīng)緯度點(diǎn)
*@param polygon 目標(biāo)多邊形的頂點(diǎn)數(shù)組
*@param count 目標(biāo)多邊形頂點(diǎn)數(shù)組元素個(gè)數(shù)
*@return 如果在內(nèi),返回YES,否則返回NO
*/
UIKIT_EXTERN BOOL BMKPolygonContainsCoordinate(CLLocationCoordinate2D point, CLLocationCoordinate2D *polygon, NSUInteger count);

判斷點(diǎn)與圓位置關(guān)系的示例代碼如下:
BOOL ptInCircle = BMKCircleContainsCoordinate(CLLocationCoordinate2DMake(39.918,116.408), CLLocationCoordinate2DMake(39.915,116.404), 1000);
除以上位置關(guān)系判斷方法外,SDK還提供獲取折線上與折線外指定位置最近點(diǎn)的方法。核心代碼如下:
BMKMapPoint *polylinePoints = new BMKMapPoint[4];//這是C++的寫法,下面是OC寫法
//BMKMapPoint *polylinePoints = (BMKMapPoint *)malloc(sizeof(CLLocationCoordinate2D) * 4);
polylinePoints[0]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.404));
polylinePoints[1]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.454));;
polylinePoints[2]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.975,116.524));;
polylinePoints[3]= BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.855,116.554));
BMKMapPoint point = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.815,116.504));
BMKMapPoint nearestPoint = BMKGetNearestMapPointFromPolyline(point, polylinePoints, 4);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容