在我的應用程式中,我使用多邊形在地圖上創建欄位。用戶通過單擊地圖并創建點/標記并單擊按鈕來創建多邊形來創建多邊形。現在我希望將這些欄位/多邊形存盤在我的 SQLite 資料庫中,但這些點以 lat/lng 資料型別給出。
我想到的一種方法是存盤polygon.getPoints()函式的字串:
Polygon p;
String latlng = p.getPoints().toString();
latlng 的輸出是:
[lat/lng: (-3.987413925092502,-18.76223847270012), lat/lng: (-4.878691546616136,-2.84572284668684), lat/lng: (-7.610723424687183,-11.666696257889273), lat/lng: (-3.987413925092502,-18.76223847270012)]
然后在從資料庫中檢索它時轉換所有點,首先使用replaceAll()從字串中洗掉所有不必要的文本,然后將每個點放在串列中,然后再次將它們轉換為 lat/lng。
看起來有點像矯枉過正有沒有更好的方法來處理這個?
uj5u.com熱心網友回復:
嘗試這個。
Pattern LAT_LNG = Pattern.compile("([-\\d.] ),([-\\d.] )");
String latlng = "[lat/lng: (-3.987413925092502,-18.76223847270012),"
"lat/lng: (-4.878691546616136,-2.84572284668684),"
"lat/lng: (-7.610723424687183,-11.666696257889273),"
"lat/lng: (-3.987413925092502,-18.76223847270012)]";
Matcher matcher = LAT_LNG.matcher(latlng);
while (matcher.find()) {
double lat = Double.parseDouble(matcher.group(1));
double lng = Double.parseDouble(matcher.group(2));
System.out.println("lat=" lat " lng=" lng);
}
輸出:
lat=-3.987413925092502 lng=-18.76223847270012
lat=-4.878691546616136 lng=-2.84572284668684
lat=-7.610723424687183 lng=-11.666696257889273
lat=-3.987413925092502 lng=-18.76223847270012
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/511234.html
標籤:爪哇安卓工作室谷歌地图
