Android用户定位Google Map显示地图
来源:互联网 发布:java认证资格培训 编辑:程序博客网 时间:2024/03/28 16:43
本文转载自 http://mzba520.iteye.com/blog/964657
作者mzba520 ,谢谢作者的辛勤劳动。
- package cn.cate.main;
- import java.util.List;
- import android.content.Context;
- import android.content.Intent;
- import android.location.Criteria;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.os.Bundle;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.view.View.OnClickListener;
- import android.widget.ImageButton;
- import android.widget.Toast;
- 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;
- public class MyMapActivity extends MapActivity implements OnClickListener{
- private MapController myMapController = null;
- private MapView mapView = null;
- private double c_lon = 0;
- private double c_lat = 0;
- private ImageButton myImageButton = null;
- private LocationManager lm = null;
- @Override
- protected boolean isRouteDisplayed() {
- return false;
- }
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- requestWindowFeature(Window.FEATURE_NO_TITLE); //全屏
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- this.setContentView(R.layout.map);
- mapView = (MapView) this.findViewById(R.id.myMapView);//得到myMapView的引用
- myMapController = mapView.getController();
- myMapController.setZoom(15); //设置放大缩小的比例
- mapView.setBuiltInZoomControls(true); //设置是否在地图上显示放大缩小按钮
- lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
- String bestProvider = lm.getBestProvider(getCriteria(), true); //设置查询条件
- Location l = lm.getLastKnownLocation(bestProvider); //获取用户位置信息
- updateView(l);
- lm.requestLocationUpdates(bestProvider, 1000, 8, ll); //绑定事件监听
- myImageButton = (ImageButton)findViewById(R.id.MyImageButton);
- myImageButton.setOnClickListener(this);
- MyMapOverlay myOverlay = new MyMapOverlay();
- List<Overlay> overlays = mapView.getOverlays();
- overlays.clear();
- overlays.add(myOverlay);
- }
- public void updateView(Location location){
- if(location != null){
- c_lat = location.getLatitude();
- c_lon = location.getLongitude();
- System.out.println("纬度:"+c_lat+",经度:"+c_lon);
- GeoPoint gp = new GeoPoint((int)(c_lat * 1E6), (int)(c_lon * 1E6));
- myMapController.animateTo(gp);
- }
- }
- @Override
- public void onClick(View v) {
- if(v == myImageButton){
- boolean flag = true;
- List<Overlay> overlays = mapView.getOverlays();
- for(Overlay overlay:overlays){
- if(overlay instanceof MyBallonOverlay){
- flag = false;
- GeoPoint gp = ((MyBallonOverlay) overlay).getGeoPoint();
- Intent intent = new Intent();
- Bundle bundle = new Bundle();
- bundle.putDouble("lat", gp.getLatitudeE6()/1E6);
- bundle.putDouble("lon", gp.getLongitudeE6()/1E6);
- intent.putExtras(bundle);
- MyMapActivity.this.setResult(RESULT_OK, intent);
- MyMapActivity.this.finish();
- }
- }
- if(flag){
- Toast.makeText(this, "请点击地图获取店铺位置", Toast.LENGTH_LONG).show();
- }
- }
- }
- public Criteria getCriteria(){
- Criteria c = new Criteria();
- c.setAccuracy(Criteria.ACCURACY_FINE); //设置查询精度
- c.setSpeedRequired(false); //设置是否要求速度
- c.setCostAllowed(false); //设置是否允许产生费用
- c.setBearingRequired(false); //设置是否需要得到方向
- c.setAltitudeRequired(false); //设置是否需要得到海拔高度
- c.setPowerRequirement(Criteria.POWER_LOW); //设置允许的电池消耗级别
- return c;
- }
- LocationListener ll = new LocationListener() {
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- }
- @Override
- public void onProviderEnabled(String provider) {
- //当设备启用时触发事件
- Location l = lm.getLastKnownLocation(provider);
- updateView(l);
- }
- @Override
- public void onProviderDisabled(String provider) {
- //当设备被禁用时触发事件
- updateView(null);
- }
- @Override
- public void onLocationChanged(Location location) {
- //当位置改变时触发事件
- updateView(location);
- }
- };
- }
- Android用户定位Google Map显示地图
- android Google Map API V2(显示地图)
- android Google Map API V2(显示地图)
- Android开发笔记Google地图定位与路线显示
- android google map 地图上显示叉叉问题。
- google map v2 显示美洲地图 小例子 android应用
- Android使用Google Map服务 - 根据GPS信息在地图上定位
- 百度地图 Android定位SDK--【显示地图 】
- 【android基础】之Android 调用系统地图(Google Map)并显示具体方位
- Google Map API 结合PHP实现登录地图定位
- android google map 地图 ItemizedOverlay 选中
- android Google Map地图应用与实现
- Android开发--使用Google地图(Map View)
- Android Google Map 地图中自定义当前位置
- Android 调用系统地图(Google Map)并显示具体方位
- Android 调用系统地图(Google Map)并显示具体方位
- android google map v2的小例子 美洲地图的显示
- android 用户定位和地图查询
- 备忘录模式
- 2011年华科计算机考研复试笔试算法、数据库(回忆版)
- Android地图和定位学习总结
- asp.net webservice session
- 高手进阶 Linux系统下MTD/CFI驱动介绍
- Android用户定位Google Map显示地图
- 近来的心情
- 关于常见排序算法的稳定性分析和结论
- hashtable 和hashmap的区别
- 常见的数学公式
- Redhat linux 命令详细
- FAT32文件系统详细介绍
- sse4j
- 让window.event.keyCode兼容Firefox