百度地图在android中的使用 实现多个覆盖物
来源:互联网 发布:淘宝350装修模板 编辑:程序博客网 时间:2024/06/08 04:47
这里是我自己写的一个小demo,可以供大家参考
在这里面我使用的是二维数组保存的经纬度,到时候大家可以根据自己的需求更改
果断贴上代码
布局我用的是最简单的布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#f3f2f2" android:orientation="vertical"> <com.baidu.mapapi.map.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true"/></RelativeLayout>贴上activity以下是我项目里使用的jarpackage com.sxyrd.yrdapp.ui;import android.graphics.Point;import android.os.Bundle;import android.view.View;import android.widget.Button;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;import com.baidu.mapapi.map.InfoWindow;import com.baidu.mapapi.map.MapView;import com.baidu.mapapi.map.Marker;import com.baidu.mapapi.map.MarkerOptions;import com.baidu.mapapi.map.OverlayOptions;import com.baidu.mapapi.model.LatLng;import com.sxyrd.yrdapp.R;import com.sxyrd.yrdapp.base.BaseActivity;import com.sxyrd.yrdapp.utils.Utils;/** * Created by Fly0116 on 2016/4/26 0026. * 商家地图显示 */public class BusMapActivity extends BaseActivity { private MapView mMapView; BaiduMap mBaiduMap = null; Marker marker=null; @Override protected int getLayoutId() { return R.layout.activity_bussion_map; } @Override public void initView() { mMapView = (MapView) findViewById(R.id.map); mBaiduMap = mMapView.getMap(); } @Override public void initData() { //创建InfoWindow展示的view double[][] numsix={{39.93923,116.357428},{39.91923, 116.327428}, {39.89923, 116.347428}, {39.89923, 116.367428}, {39.91923, 116.397428},{39.963175, 116.400244}, {39.86923, 116.397428}}; //构建Marker图标 BitmapDescriptor bitmap = BitmapDescriptorFactory .fromResource(R.mipmap.icon_gcoding); for (int i=0;i<numsix.length;i++){ LatLng pt = new LatLng(numsix[i][0], numsix[i][1]); Button button = new Button(getApplicationContext()); button.setId(2000+i); button.setBackgroundResource(R.mipmap.popu); button.setText("餐厅标识"+(i+1)); button.setPadding(5,0,5,0); button.setTextColor(getResources().getColor(R.color.black)); final int finalI = i+1; //创建InfoWindow , 传入 view, 地理坐标, y 轴偏移量 InfoWindow mInfoWindow = new InfoWindow(button, pt, -47); //构建MarkerOption,用于在地图上添加Marker OverlayOptions option = new MarkerOptions() .position(pt) .icon(bitmap); //在地图上添加Marker,并显示 mBaiduMap.showInfoWindow(mInfoWindow); marker = (Marker) (mBaiduMap.addOverlay(option)); Bundle bundle = new Bundle(); bundle.putSerializable("info", "餐厅"+finalI); marker.setExtraInfo(bundle); } mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { final String name= (String) marker.getExtraInfo().get("info"); Button button = new Button(getApplicationContext()); button.setBackgroundResource(R.mipmap.popu); button.setText("餐厅标识"+name); button.setPadding(5,0,5,8); button.setTextColor(getResources().getColor(R.color.black)); final LatLng ll = marker.getPosition(); Point p = mBaiduMap.getProjection().toScreenLocation(ll); LatLng llInfo = mBaiduMap.getProjection().fromScreenLocation(p); InfoWindow mInfoWindow = new InfoWindow(button, llInfo, -47); mBaiduMap.showInfoWindow(mInfoWindow); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Utils.toast("餐厅标识"+name); mBaiduMap.hideInfoWindow(); } }); return true; } }); } @Override public void onClick(View v) { }}
大家可以参考
如果有什么问题,可以留言,相互探讨
0 0
- 百度地图在android中的使用 实现多个覆盖物
- 百度地图中的多地图覆盖物的实现
- 百度地图 多个覆盖物
- 百度地图中的覆盖物
- Android--百度地图学习(第三章)如何给地图添加多个覆盖物
- 百度地图在Android中的使用
- 百度地图在android中的使用
- 百度地图植入android应用系列教程三实现百度地图上的覆盖物Marker与InfoWindow的使用
- 百度地图在同一屏幕显示多个覆盖物,并且已最佳的方式显示
- 在android百度地图上添加自定义覆盖物
- Android使用百度地图---添加覆盖物及定位
- Android 百度地图开发教程(一) 地图使用入门及地图表面覆盖物使用
- Android 百度地图覆盖
- 百度地图之三百度地图多个覆盖物的描述
- 百度地图MapView中的覆盖物
- 百度地图POI+覆盖物+导航 实现
- 百度地图SDK for Android【覆盖物】
- android 百度地图 二、覆盖物
- 有用的网站
- nyoj14会场安排问题
- Linux 安装远程桌面并设置添加分辨率
- SDL2.0.4+VS2015+win10 环境配置
- GitHub上创建项目 并初始化本地工程提交到GitHub上
- 百度地图在android中的使用 实现多个覆盖物
- 2014年山东ACM第五届省赛 angry_birds_again_and_again(数学积分)
- 【Java 面向对象】
- 不同的方式启动exe 引发的后果
- C++作业(四)
- java 导入导出Excel工具类ExcelUtil
- maven随记1
- 集成容器管理工具Kubernetes,CloudStack打通任督二脉
- 给颜色添加透明度