android百度地图怎么在点击地图时获取点击的详细地址信息,下面是我写的代码求大神帮帮看看!!!
package com.pc.myappdemo.ui.mall;
import android.os.Bundle;
import android.view.View;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.pc.myappdemo.R;
import com.pc.myappdemo.base.BaseActivity;
import com.pc.myappdemo.share.weibo.models.GeoList;
import com.pc.myappdemo.utils.Consts;
import com.pc.myappdemo.view.MyActionBar;
import butterknife.InjectView;
/**
* Created by Administrator on 2015/11/4.
*/
public class MallTestMap extends BaseActivity
{
@InjectView(R.id.supplier_map_actionbar)
MyActionBar singleActionBar;
@InjectView(R.id.supplier_map_mv)
MapView mapView;
BaiduMap mBaiduMap;
String lat;
String lon;
private BitmapDescriptor bitmap;
BitmapDescriptor bdB = BitmapDescriptorFactory
.fromResource(R.drawable.icon_gcoding);
LocationClient mLocClient;
private boolean isFirstLoc = true;
private Marker mMarkerA;
private Marker mMarkerB;
private String address= "";
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mall_test_map);
injectViews();
initActionBar();
lat = getIntent().getStringExtra(Consts.EXTRA_LATUTIDE);
lon = getIntent().getStringExtra(Consts.EXTRA_LONGITUDE);
mBaiduMap = mapView.getMap();
// mBaiduMap.clear();
// 设置marker图标
bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);
final LatLng llA = new LatLng(Double.valueOf(lat), Double.valueOf(lon));
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(llA);
markerOptions.zIndex(9);
initLoc();
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.mall_test_map);
// 获取地图控件引用
mMapView = (MapView) findViewById(R.id.supplier_map_mv);
mBaiduMap = mMapView.getMap();
//设置是否显示比例尺控件
mMapView.showScaleControl(false);
//设置是否显示缩放控件
mMapView.showZoomControls(false);
mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() {
@Override
public boolean onMapPoiClick(MapPoi arg0) {
// TODO Auto-generated method stub
return false;
}
//此方法就是点击地图监听
@Override
public void onMapClick(LatLng latLng) {
//获取经纬度
double latitude = latLng.latitude;
double longitude = latLng.longitude;
System.out.println("latitude=" + latitude + ",longitude=" + longitude);
//先清除图层
mBaiduMap.clear();
// 定义Maker坐标点
LatLng point = new LatLng(latitude, longitude);
// 构建MarkerOption,用于在地图上添加Marker
MarkerOptions options = new MarkerOptions().position(point)
.icon(bitmap);
// 在地图上添加Marker,并显示
mBaiduMap.addOverlay(options);
}
});
}
private void initLoc() {
// 开启定位图层
mBaiduMap.setMyLocationEnabled(true);
// 定位初始化
mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(new MyLocationListenner());
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);// 打开gps
option.setAddrType("all");
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
option.setIsNeedAddress(true);// 中文地址
mLocClient.setLocOption(option);
mLocClient.start();
}
private void initActionBar() {
singleActionBar.setOnBackClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MallTestMap.this.finish();
}
});
}
@Override
protected void onDestroy() {
mBaiduMap.setMyLocationEnabled(false);
mapView.onDestroy();
super.onDestroy();
}
/**
* 定位SDK监听函数
*/
public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null || mapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(10).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
mBaiduMap.animateMapStatus(u);
}
mLocClient.stop();
}
}
}
import android.os.Bundle;
import android.view.View;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.pc.myappdemo.R;
import com.pc.myappdemo.base.BaseActivity;
import com.pc.myappdemo.share.weibo.models.GeoList;
import com.pc.myappdemo.utils.Consts;
import com.pc.myappdemo.view.MyActionBar;
import butterknife.InjectView;
/**
* Created by Administrator on 2015/11/4.
*/
public class MallTestMap extends BaseActivity
{
@InjectView(R.id.supplier_map_actionbar)
MyActionBar singleActionBar;
@InjectView(R.id.supplier_map_mv)
MapView mapView;
BaiduMap mBaiduMap;
String lat;
String lon;
private BitmapDescriptor bitmap;
BitmapDescriptor bdB = BitmapDescriptorFactory
.fromResource(R.drawable.icon_gcoding);
LocationClient mLocClient;
private boolean isFirstLoc = true;
private Marker mMarkerA;
private Marker mMarkerB;
private String address= "";
private MapView mMapView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mall_test_map);
injectViews();
initActionBar();
lat = getIntent().getStringExtra(Consts.EXTRA_LATUTIDE);
lon = getIntent().getStringExtra(Consts.EXTRA_LONGITUDE);
mBaiduMap = mapView.getMap();
// mBaiduMap.clear();
// 设置marker图标
bitmap = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);
final LatLng llA = new LatLng(Double.valueOf(lat), Double.valueOf(lon));
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(llA);
markerOptions.zIndex(9);
initLoc();
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.mall_test_map);
// 获取地图控件引用
mMapView = (MapView) findViewById(R.id.supplier_map_mv);
mBaiduMap = mMapView.getMap();
//设置是否显示比例尺控件
mMapView.showScaleControl(false);
//设置是否显示缩放控件
mMapView.showZoomControls(false);
mBaiduMap.setOnMapClickListener(new BaiduMap.OnMapClickListener() {
@Override
public boolean onMapPoiClick(MapPoi arg0) {
// TODO Auto-generated method stub
return false;
}
//此方法就是点击地图监听
@Override
public void onMapClick(LatLng latLng) {
//获取经纬度
double latitude = latLng.latitude;
double longitude = latLng.longitude;
System.out.println("latitude=" + latitude + ",longitude=" + longitude);
//先清除图层
mBaiduMap.clear();
// 定义Maker坐标点
LatLng point = new LatLng(latitude, longitude);
// 构建MarkerOption,用于在地图上添加Marker
MarkerOptions options = new MarkerOptions().position(point)
.icon(bitmap);
// 在地图上添加Marker,并显示
mBaiduMap.addOverlay(options);
}
});
}
private void initLoc() {
// 开启定位图层
mBaiduMap.setMyLocationEnabled(true);
// 定位初始化
mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(new MyLocationListenner());
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);// 打开gps
option.setAddrType("all");
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
option.setIsNeedAddress(true);// 中文地址
mLocClient.setLocOption(option);
mLocClient.start();
}
private void initActionBar() {
singleActionBar.setOnBackClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MallTestMap.this.finish();
}
});
}
@Override
protected void onDestroy() {
mBaiduMap.setMyLocationEnabled(false);
mapView.onDestroy();
super.onDestroy();
}
/**
* 定位SDK监听函数
*/
public class MyLocationListenner implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
// map view 销毁后不在处理新接收的位置
if (location == null || mapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(10).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
mBaiduMap.setMyLocationData(locData);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
mBaiduMap.animateMapStatus(u);
}
mLocClient.stop();
}
}
}
...全文
相关推荐
android安卓百度地图开发,实现输入起点、目标地址实现导航
代码通常会有详细的注释,方便初学者理解每个部分的作用。总之,通过百度地图SDK,开发者可以轻松地在Android应用中实现导航功能,结合用户输入的起点和目标地址,提供实时的路线规划和导航指示。
使用百度地图API进行Android设备定位及获取地址信息
百度地图SDK提供丰富的图层类型,如热力图、公交线路图层等,以满足开发者不同的展示需求。图层的自定义允许开发者根据应用特点和用户习惯定制界面。// 添加热力图图层// 添加公交线路图层。
android 基于百度地图api开发定位以及获取详细地址
(); mapView.onDestroy();}```通过以上步骤,我们就实现了Android应用中基于百度地图API的基本定位功能,并获取到了详细的地址信息。
Android 百度地图获取定位信息并实时传给后台
以上就是“Android百度地图获取定位信息并实时传给后台”这一主题的主要技术点。通过实践这个案例,开发者可以深入了解Android定位服务、百度地图SDK的使用以及如何进行后台数据传输。
Android百度地图的搜索及附近地址的检索
在处理搜索结果时,通常会展示在一个列表或者自定义视图中,用户可以点击查看详细信息或者导航。对于导航功能,百度地图API提供了路径规划服务,根据起始点和目的地计算最优路线。


