import com.caverock.androidsvg.SVG; //导入方法依赖的package包/类
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("MAP", "Users nearby:");
for(DataSnapshot user : dataSnapshot.getChildren()) {
// skip ourselves!
if (user.getKey().equals(FirebaseAuth.getInstance().getCurrentUser().getUid())) {
continue;
}
// check longitude
Double longitude = user.child("location/1").getValue(Double.class);
if (longitude.compareTo(myLatLng.longitude - COORDINATES_OFFSET) < 1 || longitude.compareTo(myLatLng.longitude + COORDINATES_OFFSET) > 1)
continue;
Log.d("MAP", user.child("username").getValue(String.class) != null ? user.child("username").getValue(String.class) : "anonymous");
Double latitude = user.child("location/0").getValue(Double.class);
String username = user.child("username").getValue(String.class);
String userId = user.getKey();
String country = user.child("country").getValue(String.class);
String mood = user.child("mood").getValue(String.class);
String defaultLanguage = user.child("defaultLanguage").getValue(String.class);
MarkerOptions mo = new MarkerOptions()
.data(username)
.draggable(false)
.position(new LatLng(latitude, longitude))
.title(username)
.snippet(country + " | \"" + mood + "\"");
// read a flag from the assets folder
SVG svg = null;
try {
svg = SVG.getFromAsset(MyApp.getAppContext().getAssets(), "flags/" + defaultLanguage + ".svg");
} catch (SVGParseException | IOException e) {
Log.d("MAP", "Error loading svg for default language " + defaultLanguage);
}
// create a canvas to draw onto
if (svg.getDocumentWidth() != -1) {
Bitmap bitmap = Bitmap.createBitmap(100, 75, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawPicture(svg.renderToPicture(), new Rect(0, 0, 100, 75));
mo.icon(BitmapDescriptorFactory.fromBitmap(bitmap));
}
mMap.addMarker(mo);
}
}