android网络-GoogleMap之GPS定位

Android应用中使用GoogleMap实现定位的详细指南 开发者可以自定义GoogleMap的样式来适应应用的视觉需求。通过修改样式,可以改变地图的色彩、标记的外观,甚至可以隐藏某些元素。以下是如何在代码中应用地图样式的基本步骤:if (gMap!= null) {// 从资源文件或在线API获取样式字符串try {// 在这里可以是任何从资源文件或在线获取的JSON格式的样式字符串此外,开发者还可以通过Google Map的样式编辑器来可视化地调整地图样式,然后将生成的样式JSON代码嵌入到应用中。 阅读详情

首先,获取MapAPIKey

1,获取android keystore位置

eclipse->window->preferences->android->build

在default debug keystore下找到android key的存储位置C:\Users\acer\.android\debug.keystore,备用。

2,用jdk提供的keytool为android keystore生成认证指纹

进入cmd,按下图输入

C:\Program Files\Java\jdk1.7.0_03\bin>keytool -list -alias androiddebugkey -keystore "C:\Users\acer\.android\debug.keystore" -v

密码输入:android或不输。

取MD5值,备用


3,输入网址http://code.google.com/intl/zh-CN/android/maps-api-signup.html

,登陆Google账号,并且在申请页面上输入得到的MD5认证指纹,点击”Generate API Key”来获取我们得到的API Key

然后,创建基于Google APIs的AVD,以及创建基于Google APIs的工程

就是把所有Android2.2的都改为Google APIs

最后,编写程序

程序效果:运行程序,send经纬度后,界面标记根据经纬度变化

manifest

注意添加internet和gps的权限,以及添加googlemap的library

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

<uses-library android:name="com.google.android.maps"/>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.song"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:label="@string/app_name"
            android:name=".C7_GoogleMapActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
       <uses-library android:name="com.google.android.maps"/>
    </application>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
</manifest>
主布局

让map可点击和拖拽 android:clickable="true"
获取得到的key           android:apiKey="0HtSsgCEmiiTTfk-g0Oi59Wi2ndgjaMdoLSDPnw"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

 <com.google.android.maps.MapView
     android:id="@+id/mapview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:clickable="true"
     android:apiKey="0HtSsgCEmiiTTfk-g0Oi59Wi2ndgjaMdoLSDPnw"
     />

</LinearLayout>
主activity

package com.song;

import java.util.List;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;

public class C7_GoogleMapActivity extends MapActivity {
    /** Called when the activity is first created. */
	MapView mapview;
	MapController controller;
	Location location;
	LocationManager manager;
	GeoPoint geoPoint;
	Bitmap bitmap;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapview=(MapView)findViewById(R.id.mapview);  
        manager=(LocationManager)getSystemService(LOCATION_SERVICE);
        location=manager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
        bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.pos);//生成bitmap位图
   
        
        mapview.setBuiltInZoomControls(true);//实现放大缩小功能
        manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 60000, 10, new LocationListener() {
			
			@Override 
			public void onStatusChanged(String provider, int status, Bundle extras) {
				// TODO Auto-generated method stub
				
			}
			 
			@Override
			public void onProviderEnabled(String provider) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onProviderDisabled(String provider) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onLocationChanged(Location location) {
				// TODO Auto-generated method stub
			    getPoint(location);
			}
		});
 
    }
    public void getPoint(Location location)
    {
    	 controller=mapview.getController();
         //注意参数是纬度,经度。E6为10的6次方
//       GeoPoint geoPoint=new GeoPoint((int)(37.898989*1E6), (int)(122.989898*1E6));
         geoPoint=new GeoPoint((int)(location.getLatitude()*1E6), (int)(location.getLongitude()*1E6));
         //定位到哪个点
         controller.animateTo(geoPoint);
         //获得悬浮图层
         List<Overlay> list = mapview.getOverlays();//获得MapView上原有的overlay对象
         list.clear();//清除所有的overlay对象
         list.add(new MyOverLay());//加新获取的overlay对象
    }

	class MyOverLay extends Overlay
	{  
		//画标记的方法
		@Override
		public void draw(Canvas canvas, MapView mapView, boolean shadow) {
			// TODO Auto-generated method stub
			super.draw(canvas, mapView, shadow);
			Projection projection=mapView.getProjection();
			
			Point point=new Point();//定义输出的像素点
			projection.toPixels(geoPoint, point);//地理坐标转为像素坐标
			//绘制图片
			//bitmap, left, top, paint
			canvas.drawBitmap(bitmap, point.x-(bitmap.getWidth()/2), point.y-(bitmap.getHeight()), null);
		} 
	}
	@Override
	protected boolean isRouteDisplayed() {
		// TODO Auto-generated method stub
		return false;
	}
}
程序效果:下下图为天安门的定位效果



android GoogleMap定位(四) NULL 博文链接:https://kurting615.iteye.com/blog/1150574 立即下载

相关推荐

载波同步技术(一):BPSK的Costas Loop 载波同步

Author:McCrocodile 2010/11/04          载波的提取在相干解调中往往比较重要,根据信号中是否包含载频分量,载波同步一般也可以分为两种方法。包含载频分量的可以采用窄带滤波或者基本的锁相环环路来实现,不包含的则比较麻烦需要采用特殊的环路实现载波的同步。这里介绍的BPSK的载波恢复就属于后面一种。 对于不包含载频分量的信号载波同步一般有:同相-正交环(就是常说的Costas环)、判决反馈环(几乎可以适用所有调制方式)、同相-正交环衍生环(QPSK松尾环、N相同相-正交环)。

McCrocodile Blog 1万+

android 打开谷歌导航,国内开启google位置记录功能/android版google maps 7+上,恢复位置记录功能在国内使用(需root)...

android版google 地图在 7以后的版本上,位置记录功能在国内不能用了,提示本功能不能在中国使用。至少对本人,“位置记录”功能是非常有用的功能,尤其是骑车出行时记录自己的路线。目前还没找到替代产品。之前一段时间内恢复回旧版本,以使用该功能。后来使用shlug用户组的高手kernel老兄提供的方案,成功启用了本功能。方法如下:让andorid系统启动后加载下面这段脚本:欺骗android系...

weixin_39866966的博客 2002

IDEA 2023.2最新破解安装教程(含详细配置步骤及常见问题解决)

本文详细介绍了IDEA 2023.2的安装流程及高效开发环境搭建指南,涵盖基础配置、项目结构优化、核心功能使用、插件推荐、性能优化等全方位内容,帮助开发者快速掌握这一强大的Java开发工具。

x2y3z4a5b的博客 1754

Android 集成GoogleMap,实现定位和获取位置信息

1.准备 我使用的是AS2.2.2,首先FQ注册google开发者帐号,准备获取API Key,网上有许多相关资料我就不再赘述,这里讲一个比较小白级的获取方法,可以减少许多输入 1.1. AS创建项目添加一个Google Map Activity   1.2 创建成功后找到google_maps_api.xml,便可看到下图内容,根据我初中英文水平,复制这行到浏览器地址栏,跟着它走就行...

weixin_34192816的博客 3499

Jenkins+docker 微服务实现自动化部署安装和部署过程

本文详细介绍了如何使用Docker部署Jenkins自动化服务器。主要内容包括:1)拉取Jenkins官方或BlueOcean镜像;2)创建容器并配置端口映射、数据卷挂载;3)设置防火墙规则;4)配置清华大学镜像加速;5)安装必要插件;6)SSH密钥配置;7)构建触发器设置;8)编写自动化构建脚本。通过Docker部署Jenkins可以简化安装流程,确保环境一致性,并利用容器特性实现快速启动和管理。文章提供了完整的配置步骤和注意事项,帮助用户快速搭建CI/CD环境。

qq_33665793的博客 1691

双重机器学习 stata教程 手把手教学

双重机器学习(DDML)的stata教程

weixin_59030591的博客 1万+

android 默认开启谷歌定位精准度

本文主要提供一种默认开启谷歌定位精准度开关的方案。通过调试时打开/关闭开关对比SettingsProvider的数据变化,在开机收到ACTION_BOOT_COMPLETED广播后,主动修改并填充数据,实现默认打开的需求。

通信侠的博客 2128

建议收藏:模拟版图高频面试题,直通面试,Offer抢先拿!

直击模拟版图面试

nuoweishizi的博客 6337

Android使用Google Map服务 - 根据GPS信息在地图上定位

Android使用Google Map服务 - 根据GPS信息在地图上定位 自暑假7月7日开始,到今天的8月7日,整个一个月,我总算是学到了Google Map这部分的内容。原本挺兴奋的,却被注册api key的网页显示错误弄得挺无聊,还好网上的能人多,搜了一下子就找到了解决方案,挺感激的,泪牛满面啊。这样我就可以继续这部分的学习。 在使用Google Map服务之前要做一些必要的准备 1.

巫山老妖 6135

智能车数字图像处理算法入门及C语言实现

智能车图像的最最基本入门算法介绍及C语言实现,二值化 - 特征识别 - 补线 - 中心巡线 - 偏差曲率计算。

不想随波逐流的大学生一枚,我们每个人都在努力奔跑 5110

统信UOS安装CH384串口卡驱动

本文讲解如何在统信UOS系统下安装CH384 PCIE多串口驱动安装过程,CPU为飞腾D2000。其他Linux内核系统安装亦可参照类似方法。

shjhuang的专栏 1885

Android 7.1 默认位置信息模式设置为高精确度(兼容至9.0版本)

将 /frameworks/base/packages/SettingsProvider/res/values/defaults.Android原生的位置信息模式默认是“仅限设备”,现根据客户提出的需求,需要将位置信息模式默认设置为“高精确度”注:此方法兼容至Android 9.0版本。

Jeffries_C的博客 639

14、利用Helm和GitOps实现Kubernetes资源管理与CI/CD流程优化

本文介绍了如何结合Helm、GitOps和Terraform等工具,优化Kubernetes资源管理和CI/CD流程。内容涵盖了Helm提供程序的配置、GitOps的核心理念、CI/CD管道的构建与测试策略、GitHub源代码管理模型以及流程优化建议,旨在提升软件开发和部署的效率与质量。

y7z8a9的博客 156

Android之googleMap(其二)

Android之googleMap(其二)  上文说到获取手机所在地的经纬度,那么有几种方式呢?通过GPS,network.而地位API中提供了LocationManager,以及Location。其中LocationManager用来获得位置服务,Location用来获取位置。具体代码如下: View Code private GeoPoint getGeoP

android大牛MrJing 活动中心 854

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

GPS与Google Map定位系统

GPS与Google Map定位系统 以MyMap服务系统为实例,介绍Android Google Map、Android定位服务、案例重构,采用Java开发GPS与Google Map定位应用程序。 Google地图是Google公司提供的电子地图服务,能提供3种视图:一是矢量地图,可提供行政区、交通及商业信息;二是不同分辨率的卫星照片;三是地形视图,可以用以显示地形和等高线。使用Googl...

weixin_30535043的博客 231

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android googlemap 获取手机位置经纬度_Android获取手机基站位置并进行基站定位的原理...

一、首先普及一下手机基站信息中相关的专业词汇:通过TelephonyManager 获取lac:mcc:mnc:cell-id(基站信息)的解释:MCC,Mobile Country Code,移动国家代码(中国的为460);MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为1,中国电信为2);LAC,Location Area Code,位置区域码;...

weixin_42320332的博客 1215

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android 三种定位方式

最近在看android关于定位的方式,查了很多资料,也做了相关实验,在手机上做了测试,下面总结: 一共有三种定位方式,一种是GPS,一种是通过网络的方式,一种则是在基于基站的方式,但是,不管哪种方式,都需要开启网络或者GPS 首先添加权限 <uses-permission android:name="android.permission.ACCES...

优快云1332531529的博客 194

Android基站定位源代码

Android基站定位源代码 经过几天的调研以及测试,终于解决了联通2G、移动2G、电信3G的基站定位代码。团队里面只有这些机器的制式了。下面就由我来做一个详细的讲解吧。 1 相关技术内容 Google Android Api里面的TelephonyManager的管理。 联通、移动、电信不同制式在获取基站位置的代码区别。 通过基站的基本信息,通过Google Gears获取对应

echo3的专栏 4811

【转】Android定位中的一些问题

关于android上的定位 最近在做定位相关的东西,把知识整理一下并分享出来。 1.定位有三种,网络,基站,GPS 2.不管哪种定位核心是要取得经纬度,你知道了经纬度要换算成具体地理位置的方法是有很多种的 以下分别讲述三种的实现: ◆GPS 比较简单 public String mac; TextView msg; LocationMa...

weixin_30273763的博客 101

Android大赛首轮获奖作品解析。。。

Android挑战赛第一轮前50的作品 公布出来了,除了有4个暂时希望保密,其他46的介绍 都已放出。虽然我大大的名落孙山之后,但不妨碍翻看这些作品,尝试思考一些手机应用的问题,尽情期盼下明天。这些作品,是由上百位领域专家 ,经过一套还算复杂的流程 评 选出来的。我想,从中不仅仅可以看到Android的发展方向,也可以看到手机应用的一个发展趋势。如果你想在Android这块地盘上分一碗羹...

seaofforest的专栏 153

轻松学Android开发

《轻松学Android开发》一书共分四篇。 “Android基础篇” 主要介绍Android系统、Android布局设计以及Android程序开发中常用的各类控件等知识; “Android技术篇” 主要介绍菜单、对话框、Toast、Notification、Activity、Service、Broadcast以及Android数据存储等; “Android应用篇” 介绍了Android网络开

u012213585的专栏 983

android GoogleMap定位(三)

一个根据GPS信息在地图上的定位的小demo 布局文件main.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android...

kurting616的博客 288

Android定位程序——WIFI定位,GPS定位

1、通过googlemap定位 //获取到LocationManager对象 LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); //如果没有开启位置源,转到‘设置’-‘位置和安全’里勾选使用无线网络,来激活NETWOR

lizhenmingdirk的专栏 2万+

wince 软件_我是这样玩GPS软件的(概述篇)

上一次给大家分享了如何在64位系统下安装丰田检测线, 这一波带货大家买的线都还在路上吧。所以,今天咱们聊点别的。本期主题是给大家分享下在旅行过程中,在没有网络的状况下,我是如何使用GPS软件的。其实我很业余,至今没有使用过佳明这样的专业GPS手持终端(主要是 买不起)。无卖弄之意,只是分享自己的体验,希望对大家有用。一、WINCE时代09年买了台多普达的TOUCH HD手机,这台手机是...

weixin_39934085的博客 1216

Android:根据GPS信息在地图上定位

一、MapView类  直接在布局中使用,使用android:apiKey属性定义MAP API KEY;  支持如下方法:  MapController getController():获取该MapView关联的MapController;  GeoPoint getMapCenter():获取该MapView所显示的中心;  int g

1024工场 3998
上一篇: android网络-GPS获取定位信息
下一篇: Handler和ProgressBar实现进度条的开始,暂停,停止,后退和循环
superjunjin
博客等级 码龄17年 600粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值