Android如何将latLng的字符串值从Firebase转换回latLng?
在我的应用程序中,我试图让人们标记他们的位置,并通过Firebase将其带回 这是我抓取板条的代码:Android如何将latLng的字符串值从Firebase转换回latLng?,android,google-maps,firebase,firebase-realtime-database,google-maps-markers,Android,Google Maps,Firebase,Firebase Realtime Database,Google Maps Markers,在我的应用程序中,我试图让人们标记他们的位置,并通过Firebase将其带回 这是我抓取板条的代码: final LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude()); 然后,我将latLng的字符串值发送到另一个活动,以便将其发送到数据库: Intent co_intent = new Intent(MapsActivity.this, ServerImage.clas
final LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
然后,我将latLng的字符串值发送到另一个活动,以便将其发送到数据库:
Intent co_intent = new Intent(MapsActivity.this, ServerImage.class);
co_intent.putExtra("pelatlng",String.valueOf(latLng));
MapsActivity.this.startActivity(co_intent);
当我这样做时,坐标会像这样保存在数据库中(出于明显的原因而伪造坐标):
然后我得到了数据库值,这样我就可以带回坐标:
mDatabaseMarker=FirebaseDatabase.getInstance().getReference().child("Markers");
现在,我尝试通过ChildEventListener将保存的标记如下:
refDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String prevChildKey) {
);
mMap.addMarker(new MarkerOptions()
.position(?)
}
然而,我不知道该把什么放在标记位置上。
我可以很好地将值作为字符串返回,但在将标记放回该位置时遇到问题。感谢您的帮助。最初在括号内拆分值,如下所示:
String example = "lat/lng:(35.000000,119.0000000)";
Matcher m = Pattern.compile("\\(([^)]+)\\)").matcher(example);
while(m.find()) {
from_lat_lng = m.group(1) ;
}
Marker a = gMap.addMarker(new MarkerOptions().zIndex(100)
.position(new LatLng(lat,lon))
一旦你有了带有lat的字符串,lon将其拆分并将其解析为double
String[] gpsVal = from_lat_lng.split(",");
double lat = Double.parseDouble(gpsVal[0]);
double lon = Double.parseDouble(gpsVal[1]);
在此之后,您可以在标记中使用lat、lon,如下所示:
String example = "lat/lng:(35.000000,119.0000000)";
Matcher m = Pattern.compile("\\(([^)]+)\\)").matcher(example);
while(m.find()) {
from_lat_lng = m.group(1) ;
}
Marker a = gMap.addMarker(new MarkerOptions().zIndex(100)
.position(new LatLng(lat,lon))
我试过了,但数据库中的坐标值为空