Android 百度地图 最新SDK v3.4.0 基础地图加标记点图层和信息图层
发布日期:2022-02-14 23:02:38
浏览次数:50
分类:技术文章
本文共 4703 字,大约阅读时间需要 15 分钟。
package com.example.locationapp; import java.util.List; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener; import com.baidu.mapapi.map.BitmapDescriptor; import com.baidu.mapapi.map.BitmapDescriptorFactory; import com.baidu.mapapi.map.InfoWindow; import com.baidu.mapapi.map.MapStatus; 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.OverlayOptions; import com.baidu.mapapi.model.LatLng; import com.baidu.mapapi.model.LatLngBounds; import com.example.bin.Info; import android.os.Bundle; import android.app.Activity; import android.graphics.Point; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; public class MainActivity extends Activity { MapView mMapView = null; private BaiduMap mBaiduMap; private View popview; InfoWindow mInfoWindow; //信息图层 //bean类 List<Info> infos; Info info; LatLng latlng; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); //设定中心点坐标 LatLng cenpt = new LatLng(34.75557,113.798519); //定义地图状态 MapStatus mMapStatus = new MapStatus.Builder() .target(cenpt) .zoom(18) .build(); //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化 MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus); //改变地图状态 mBaiduMap.setMapStatus(mMapStatusUpdate); /* //单个地点标志添加 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.location_arrows); OverlayOptions options = new MarkerOptions().position(cenpt).icon(bitmap); mBaiduMap.addOverlay(options); */ //添加多个点,从bean得到数据 info = new Info(); infos = info.infos; for (int i=0;i<infos.size();i++) { System.out.println("------"+infos.size()); latlng = new LatLng(infos.get(i).getLatitude(), infos.get(i).getLongitude()); System.out.println("========"+latlng); BitmapDescriptor bitmap2 = BitmapDescriptorFactory.fromResource(R.drawable.maker); OverlayOptions options2 = new MarkerOptions().position(latlng).icon(bitmap2); mBaiduMap.addOverlay(options2); } //多个标记点的点击事件 mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { final LatLng ll = marker.getPosition(); Log.e("标签", "--!" + ll); Point p = mBaiduMap.getProjection().toScreenLocation(ll); Log.e("标签", "--!" + p.x + " , " + p.y); p.y -= 47; LatLng llInfo = mBaiduMap.getProjection().fromScreenLocation(p); //两种生产infowindow的方法 // (1) /* popview = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_layout, null); TextView popText = ((TextView)popview.findViewById(R.id.location_tips)); popText.setText("弹窗图层");*/ // (2) //生成一个TextView用户在地图中显示InfoWindow TextView location = new TextView(getApplicationContext()); location.setBackgroundResource(R.drawable.popup2); location.setPadding(5, 5, 5, 5); location.setTextColor(getResources().getColor(android.R.color.black)); location.setText("5.14-15:32"); mInfoWindow = new InfoWindow(location, ll, -30); //为弹出的InfoWindow添加点击事件 //显示InfoWindow mBaiduMap.showInfoWindow(mInfoWindow); //为弹出的InfoWindow添加点击事件 location.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { //隐藏InfoWindow mBaiduMap.hideInfoWindow(); } }); return true; } }); /* //弹窗图层 popview = LayoutInflater.from(MainActivity.this).inflate(R.layout.pop_layout, null); TextView popText = ((TextView)popview.findViewById(R.id.location_tips)); popText.setText("弹窗图层"); mInfoWindow = new InfoWindow(popview, cenpt, -30); //点击marker标志之后弹出图层 mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker arg0) { //显示InfoWindow mBaiduMap.showInfoWindow(mInfoWindow); return false; } }); //点击弹窗图层后InfoWindow消失 popview.setOnClickListener(new OnClickListener() { public void onClick(View arg0) { mBaiduMap.hideInfoWindow(); } }); */ } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); }}
源码下载地址 http://download.csdn.net/detail/fei900724/8701055
转载地址:https://blog.csdn.net/fei900724/article/details/45726443 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月17日 18时05分11秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
http header头设置反向代理不缓存
2019-04-27
配置MySQL主从复制
2019-04-27
CI框架如何删除地址栏的 index.php
2019-04-27
expires与etag控制页面缓存的优先级
2019-04-27
取消掉Transfer-Encoding:chunked
2019-04-27
HTTP协议中的Tranfer-Encoding:chunked编码解析
2019-04-27
JavaScript面向对象编程
2019-04-27
在Javascript中使用面向对象的编程
2019-04-27
PHP Webservice的发布与调用
2019-04-27
php反射类 ReflectionClass
2019-04-27
为 PHP 应用提速、提速、再提速
2019-04-27
Linux下gedit显示行号
2019-04-27
《Advanced PHP Programming》读书笔记
2019-04-27
让我们谈谈RAID
2019-04-27
jQuery日期选择器插件date-input
2019-04-27
PHP使用curl_multi_add_handle并行处理
2019-04-27
NP问题
2019-04-27
AT&T与Intel汇编语言的比较
2019-04-27
javascript解析json
2019-04-27
WinDbg安装与使用
2019-04-27