1.3 数据建模部分 此系统是建立在Mysql的基础上完成的数据建模,采用Mysql绿色版本简单易用随时搭建。数据库表主要存储应急避难场所地点的编号、名称、面积、容纳人口、经纬度、地址,便于后期对新地点的添加与修改。 2 系统功能设计与实现 2.1 GPS定位设计与实现 View为jsp显示端,首页显示各项功能链接图标及按照最近避难场所进行的排序。 手机端APK主要使用安卓手机的网络定位功能,通过经纬度查询数据库中避难场所的经纬度,通过java算法排序查找到就近的避难场所。以下是算法代码:private static final double EARTH_RADIUS=6378137; private static double rad(double?d) { return d * Math.PI / 180.0; } public static int GetDistance(double lng1,double lat1,double lng2,double lat2){ double radLat1=rad(lat1); double radLat2=rad(lat2); double a=radLat1-radLat2; double b=rad(lng1)-rad(lng2); double s=2*Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +Math.cos(radLat1)*Math.cos(radLat2) *Math.pow(Math.sin(b/2),2))); s=s*EARTH_RADIUS; return(int)(Math.round(s* 10000)/10000); } public int compare(Object arg0,Object arg1) { Integer dis1=Integer.valueOf(((Place)arg0).getDis()); Integer dis2=Integer.valueOf(((Place)arg1).getDis()); return?dis1.compareTo(dis2); } |