日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内...

發布時間:2024/4/17 Android 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在lbs開發中,可能要碰到這樣的問題,如何判斷一個指定的經緯度點是否落在一個多邊形區域內,比如我在地圖上畫了一個多邊形區域,然后給出一個經緯度點,怎樣判斷這個點是否在這個多邊形范圍之內,由于我用的是android平臺上的高德地圖,官網找了很久都沒有找到,貌似是沒有這個方法,如果有哪位發現了,請給我留言。但是在百度地圖的api上我發現了有這個方法來判斷,http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v3_7_0/com/baidu/mapapi/utils/SpatialRelationUtil.html#isPolygonContainsPoint(java.util.List,%20com.baidu.mapapi.model.LatLng)這個isPolygonContainsPoint可以處理。沒辦法,我的app用的是高德地圖,又不能換,只能另求他法,網上提供很多種方法來判斷,很多都不準,有些可以,有些不可以,這個http://www.voidcn.com/article/p-auovedll-ty.html地址的方法是可以的,這個他是用C#寫成的,我用高德的api重寫下,給大家提供個參考:

// 功能:判斷點是否在多邊形內

// 方法:求解通過該點的水平線與多邊形各邊的交點

// 結論:單邊交點為奇數,成立!

//參數:

// POINT p 指定的某個點

// LPPOINT ptPolygon 多邊形的各個頂點坐標(首末點可以不一致)

public static boolean PtInPolygon(LatLng point, List APoints) {

int nCross = 0;

for (int i = 0; i < APoints.size(); i++) {

LatLng p1 = APoints.get(i);

LatLng p2 = APoints.get((i + 1) % APoints.size());

// 求解 y=p.y 與 p1p2 的交點

if ( p1.longitude == p2.longitude) // p1p2 與 y=p0.y平行

continue;

if ( point.longitude < Math.min(p1.longitude, p2.longitude)) // 交點在p1p2延長線上

continue;

if ( point.longitude >= Math.max(p1.longitude, p2.longitude)) // 交點在p1p2延長線上

continue;

// 求交點的 X 坐標 --------------------------------------------------------------

double x = (double)(point.longitude - p1.longitude) * (double)(p2.latitude - p1.latitude) / (double)(p2.longitude - p1.longitude) + p1.latitude;

if ( x > point.latitude )

nCross++; // 只統計單邊交點

}

// 單邊交點為偶數,點在多邊形之外 ---

return (nCross % 2 == 1);

}

注意,這個LatLng類,是高德地圖api提供的,代表經緯度,我用這個方法做了大量的臨界測試,發現都很準,沒有失誤過,而且,我也在自己的項目中使用了,效果還好,親測可用,希望對大家有幫助!!!

總結

以上是生活随笔為你收集整理的android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。