【发布时间】:2015-12-17 06:29:50
【问题描述】:
我有一个名为坐标的 ArrayList>,它有 3 个列表:一个带有名为 hr 的变量,一个带有纬度,一个带有经度。在每一个中都有数千个条目。我的想法是将所有这些变量映射到地图(大声笑)中,其中一个颜色的点(取决于 hr)被放置在纬度和对数指定的位置。这就是我目前正在做的事情。我有谷歌地图的标准活动。在 onCreate 结束时我调用:
paint()
这个函数的作用:
/*Paint the dots of locations*/
private void paint (){
//Paint the city with the blood of my enemies
ArrayList<ArrayList<String>> coordinates = new ArrayList<ArrayList<String>>();
ArrayList<String> lat = new ArrayList<String>();
ArrayList<String> lon = new ArrayList<String>();
ArrayList<String> hr = new ArrayList<String>();
coordinates = readfile(); #Import file from downloads and process it, takes 0.5sec for over 6000 entries.
/*Here and down takes 1 minute for the same number of entries*/
lat = coordinates.get(0);
lon = coordinates.get(1);
hr = coordinates.get(2);
for (int i = 0; i < lat.size(); i++) {
//paint
// Add a circle for high heart rate
if(Integer.parseInt(hr.get(i))>100){
Circle circle = mMap.addCircle(new CircleOptions()
.center(new LatLng(Double.parseDouble(lat.get(i)), Double.parseDouble(lon.get(i))))
.radius(10) //size of circle
.strokeColor(Color.RED)
.fillColor(Color.RED));
}
else{
Circle circle = mMap.addCircle(new CircleOptions()
.center(new LatLng(Double.parseDouble(lat.get(i)), Double.parseDouble(lon.get(i))))
.radius(10) //size of circle
.strokeColor(Color.GREEN)
.fillColor(Color.GREEN));
}
}
}
我添加了一些日志查看时间,文件的导入和处理需要0.5秒。剩下的需要 1 分钟。
有什么方法可以优化这个?我的想法是,是否可以获取所有重复的点(相同的纬度和经度)并使用最常见的 hr 值或平均值(?)。我不知道如果用户在移动中这会有多大帮助。
有什么建议吗?
【问题讨论】:
标签: java android google-maps arraylist