我是谷歌Android开发和位置基础应用程序的新手。 通过谷歌的教程,我可以显示一个位置。 之后我开发了更多,并从我的数据库中读取双纬度和双倍经度。(通过选择你会看到的位置!) 现在,我想显示我的数据库中存在的所有点(纬度和经度)。 我可以从数据库中读取它们,但是如何在我的应用程序中显示多点(纬度和经度)。 这是我的MainActivity代码,名为LocationService:
public class LocationService extends FragmentActivity implements OnMapReadyCallback {
double latitude;
double longitude;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_service);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
ConnectionHelper connectionHelper = new ConnectionHelper();
Statement statement;
try {
statement = connectionHelper.getMyConnection().createStatement();
ResultSet resultSet = statement.executeQuery("select Latitude, Longitude from myDB where Name='name'");
if(resultSet.next()) {
do {
latitude = Double.valueOf(resultSet.getString("Latitude"));
longitude = Double.valueOf(resultSet.getString("Longitude"));
LatLng myLocation = new LatLng(latitude, longitude);
map.addMarker(new MarkerOptions().position(myLocation).title("Marker in Place!"));
map.moveCamera(CameraUpdateFactory.newLatLng(myLocation));
} while (resultSet.next());
}
} catch (SQLException e) {
e.printStackTrace();
}
//
}
}
在onMapReady方法中,我显示了在我的语句中选择的单个点。 现在我想得到没有where子句的所有点数。(所有纬度和经度)并显示所有。 我正在寻找最好的解决方案。 我将不胜感激任何帮助。 最诚挚的问候!
答案 0 :(得分:2)
您只需要创建ArrayList<LatLag>
并逐一添加
List<LatLag> _list=new ArrayList<LatLng>();
if(resultSet.next()) {
do {
latitude = Double.valueOf(resultSet.getString("Latitude"));
longitude = Double.valueOf(resultSet.getString("Longitude"));
LatLng myLocation = new LatLng(latitude, longitude);
_list.add(myLocation );
} while (resultSet.next());
}
最后你获得了_list
答案 1 :(得分:0)
创建MapPoint类
public class MapPoint{
String name;
double long;
double lat;
public MapPoint(String name, double long, double lat){
this.name = name;
this.long = long;
this.lat = lat;
}
然后将您的积分从数据库读取到List<MapPoint> mList
并在onMapReady中执行此操作
MapPoint[] mPoint;
mPoint = mList.toArray(new MapPoint[]{});
for (int i = 0; i < mPoint.length(); i++) {
double latitude = mPoint[i].lat();
double longitude = mPoint[i].long();
marker = new MarkerOptions().position(
new LatLng(latitude, longitude)).title(mPoint[i].name());
marker.icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED));
googleMap.addMarker(marker);
}
希望它有所帮助。