[转]android MapView 定位与Overlay onTap事件处理

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://honkershi.blog.51cto.com/1691715/412031

android 手机,真的好想买一个,可惜太贵了。现在的工资负担不起!关注android g3手机降价!哈哈。

解决业务需要:在Google地图上显示五一与芙蓉大道,在交叉路上部署4个监控视频,使用android手机调用路况监控视频,查看路况是否拥堵或其他目的。

分析:1、首先要获取gs坐标,以便定位到五一大道和芙蓉大道交叉口。

            2、用图片标志该交叉路口的路况视频点位置。

            3、点击图片调用该处的监控视频。

技术解决:这里我只是做一个演示效果没有具体去获取gs坐标,而是写死。贴代码:

 

 

接上:

 

 

继承Overlay  画标志到Google map上:

 

重写Overlay事件onTap方法:

 

另外我把摄像头封装到一个类如下:

 

 

省略set/get方法

特别注意:使用Google地图需要申请当前电脑jdk环境的apiKey。具体怎么申请Google一下,这里就不做详细说明。

下面贴mian。xml:该注意的地方

另外注意导入com.google.android.maps包和加一些必要的权限:

 

 

下面我们来看看效果:

 

 

 

 

 

触发解决:使用经纬坐标转换为屏幕x与y轴。 当前定位的x/y保存在一个list里面,然后重写onTap事件获取当前的经纬度坐标转换为x/y轴。满足一定范围调用对应的url监控视频进行转发播放。

如下代码:

if(!vidiconList.isEmpty())
       {
        for(int i=0;i<vidiconList.size();i++)
           {
            Vidicon vd=vidiconList.get(i);
            //vd.getX() map上定位的x坐标  以此类推screenX.x 单机map的x坐标
            if((vd.getX()-screenX.x<=50 && vd.getX()-screenX.x>=-50) && (vd.getY()-screenX.y<=50 && vd.getY()-screenX.y>=-50))
            {
             new AlertDialog.Builder(ShowMap.this).setMessage("触发单击事件"+vd.getLongitude().getLatitudeE6()+"经度"+vd.getLongitude().getLongitudeE6()+"可以调用路况监控视频").show();
            }
           }
       }

 

本文出自 “雷运石-石头记” 博客,请务必保留此出处http://honkershi.blog.51cto.com/1691715/412031

posted on 2012-05-11 09:47  freeliver54  阅读(1103)  评论(0编辑  收藏  举报

导航