我要在百度android地图上画1千多个点,全部画的话会很卡,所以要循环判断各点有没超出屏幕范围,大概代码如下:
- Java code
for(int i=0;i<jarry.length();i++){ try { if(Double.parseDouble(jarry.getJSONObject(i).getString("w"))<24.811905 && Double.parseDouble(jarry.getJSONObject(i).getString("j"))<113.594293) { mMapView.getOverlays().add(new OverItemT(marker, this,jarry.getJSONObject(i).getString("j"),jarry.getJSONObject(i).getString("w"),jarry.getJSONObject(i).getString("gjxname"),jarry.getJSONObject(i).getString("Content"))); } } catch (JSONException e) { //TODO Auto-generated catch block e.printStackTrace(); } }
问题是怎么获取屏幕经纬范围,上面的数字是我自己写上去的,每个点怎么判断有没超出屏幕?求好心人提供代码,谢谢了
------解决方案--------------------
根据中心的坐标算出矩形的坐标范围,然后判断就行了吧
------解决方案--------------------
可以获取当前屏幕大小 长宽就都有了
------解决方案--------------------
正常思路应该是这样的:
你拿到屏幕左上角和右下角经纬度,根据经纬度从你那一千个点中取出符合条件的点,
在你画符合条件点之前,你把地图上所有的点全部清空后再把符合条件的点来上去,这样地图上只会有显示区域内的点
------解决方案--------------------