20125 月16
查询1公里范围内的经纬度数据:
select 6371.012 *
acos(cos(acos(-1) / 180 * d.LATITUDE) *
cos(acos(-1) / 180 * 31.885972440801) *
cos(acos(-1) / 180 * d.LONGITUDE - acos(-1) / 180 * 117.30923429642) +
sin(acos(-1) / 180 * d.LATITUDE) *
sin(acos(-1) / 180 * 31.885972440801))*1 as a,
id,name
from loc_data d
where 6371.012 *
acos(cos(acos(-1) / 180 * d.LATITUDE) *
cos(acos(-1) / 180 * 31.885972440801) *
cos(acos(-1) / 180 * d.LONGITUDE - acos(-1) / 180 * 117.30923429642) +
sin(acos(-1) / 180 * d.LATITUDE) *
sin(acos(-1) / 180 * 31.885972440801))*1 < 1 order by a asc
20118 月31
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>
<script type="text/javascript" src="http://dev.baidu.com/wiki/static/map/API/examples/script/convertor.js"></script>
</head>
<body style="padding:4px 0px 4px 4px;overflow-y:scroll">
<div style="position:relative; width:100%;height:405px;border:1px solid #D4D0C8;" id="container"></div>
<script language="javascript" id="mapscript">
document.getElementById("container").style.height = document.body.clientHeight+18;
var map = new BMap.Map("container");
map.centerAndZoom("兰州", 5);
map.addControl(new BMap.NavigationControl());
map.enableScrollWheelZoom();//启动鼠标滚轮缩放地图
map.addEventListener('load',function(){
//增加一个标注点
//doaddpoint('<%=appname%>/img/private/images/icon_home1.png', '', '<%=locdata.getRegion()%><%=locdata.getCity()%><%=locdata.getStreet()%>', '', '<%=jd%>', '<%=wd%>', '<%=locdata.getPhone()%>', '<%=Sys_userCtl.getUserNameByloginNames(locdata.getLoginname())%>','<%=locdata.getCtime()%>','#ff0000','<%=Loc_dataCtl.getLocType(locdata)%>');
});
//新增一个点时处理方法
function doaddpoint(img, name, dz, id, jd, wd, dh, lxr,sm,color,type)
{
var sContent ="<div class='tab_TextInput_map' style='width:250px;'><table id='TextInput_map' align=left><tr><td><b>人员姓名:</b></td><td>" + lxr + "</td></tr><tr><td><b>手机号码:</b></td><td>" + dh + "</td></tr><tr><td><b>定位时间:</b></td><td>" + sm + "</td></tr><tr><tr><td><b>上传地址:</b></td><td>" + dz + "</td></tr><tr><td><b>定位方式:</b></td><td>" + type + "</td></tr></table></div>";
var gpsPoint = new BMap.Point(jd,wd);
translateOptions = function (point){
var marker = new BMap.Marker(point);
var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
map.addOverlay(marker);
marker.addEventListener("click", function(){
this.openInfoWindow(infoWindow);
});
marker.setLabel(new BMap.Label("<span style='color:blue;font-size:16px;font-weight:bold;'>" + lxr +"</span>",{offset:new BMap.Size(20,0)}));
}
BMap.Convertor.translate(gpsPoint,0,translateOptions);
}
</script>
</div>
</form>
</body>
</html>
201011 月16
1、GPS功能代码
private void getLocation()
{
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
200, 0, locationListener);
}
private final LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) { //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
// log it when the location changes
if (location != null) {
Lat.setText(String.valueOf(location.getLatitude()));
Lon.setText(String.valueOf(location.getLongitude()));
}
}
public void onProviderDisabled(String provider) {
// Provider被disable时触发此函数,比如GPS被关闭
}
public void onProviderEnabled(String provider) {
// Provider被enable时触发此函数,比如GPS被打开
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
}
};
2、拍照功能代码
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Hide the window title.
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
imageView = (ImageView) this.findViewById(R.id.iv1);
Button button = (Button) this.findViewById(R.id.bt1);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(Environment
.getExternalStorageDirectory(), "temp.jpg")));
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
startActivityForResult(intent, 0);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 0 && resultCode == Activity.RESULT_OK) {
this.imageView.setImageDrawable(Drawable.createFromPath(new File(
Environment.getExternalStorageDirectory(), "temp.jpg")
.getAbsolutePath()));
}
}
3、退出程序确认
public boolean onKeyDown(int keyCode, KeyEvent event) {
//按下键盘上返回按钮
if(keyCode == KeyEvent.KEYCODE_BACK){
new AlertDialog.Builder(Main.this)
// Main.this视情况而定,这个一般是指当前显示的Activity对应的XML视窗。
.setTitle("")// 设置对话框的标题
.setMessage(" 确定退出? ")// 设置对话框的内容
.setPositiveButton("确定",// 设置对话框的确认按钮
new DialogInterface.OnClickListener() {// 设置确认按钮的事件
public void onClick(DialogInterface dialog, int which) {
//退出程序
android.os.Process.killProcess(android.os.Process.myPid());
}})
.setNegativeButton("取消",// 设置对话框的取消按钮
new DialogInterface.OnClickListener() {// 设置取消按钮的事件
public void onClick(DialogInterface dialog, int which) {
// 如果你什么操作都不做,可以选择不写入任何代码
dialog.cancel();
}}
).show();
return true;
}else{
return super.onKeyDown(keyCode, event);
}
}
201011 月15
某集团移动数据采集系统(采购、质检)开发告一段落,主要功能有客户拜访、收发货、质检单等数据上报,和ERP系统的接口,工作汇报等功能,有后台自动运行的每小时上传一次的GPS定位功能。
采购员可能到达全国各地,许多地方没有电脑上网条件,用移动终端智能手机系统能很好的解决此问题。
目前软件已在使用,不过在使用过程中也发现一些问题,如由于移动网络信号的问题,会出现网络传输中断不能上传的情况,此时就需要有本地保存批量上传功能;GPS定位的问题很怪,几个采购员出去,到目前为止仅有一个人能定位到,同样的程序其他人却不能定位,很奇怪……