当前位置: 首页 > news >正文

企业内部网站模板下载唐山注册公司网上申请入口

企业内部网站模板下载,唐山注册公司网上申请入口,设计工作室logo,网站设计行业背景本文主要讲解如何实现在百度地图上添加覆盖物 1.承载数据的实体 我们从服务器返回的数据部分#xff0c;最终可能是个Json数组#xff0c;我们需要转换为实体集合#xff0c;即下面的Info.java 我直接在实体类中声明了一个静态列表集合#xff0c;模拟从服务器返回的数据…本文主要讲解如何实现在百度地图上添加覆盖物 1.承载数据的实体 我们从服务器返回的数据部分最终可能是个Json数组我们需要转换为实体集合即下面的Info.java 我直接在实体类中声明了一个静态列表集合模拟从服务器返回的数据Info.infos package com.zj.map2;import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class Info implements Serializable { private static final long serialVersionUID -758459502806858414L; /** * 精度 */ private double latitude; /** * 纬度 */ private double longitude; /** * 图片ID真实项目中可能是图片路径 */ private int imgId; /** * 商家名称 */ private String name; /** * 距离 */ private String distance; /** * 赞数量 */ private int zan; public static ListInfo infos new ArrayListInfo(); static { infos.add(new Info(34.242652, 108.971171, R.drawable.a01, 英伦贵族小旅馆, 距离209米, 1456)); infos.add(new Info(34.242952, 108.972171, R.drawable.a02, 沙井国际洗浴会所, 距离897米, 456)); infos.add(new Info(34.242852, 108.973171, R.drawable.a03, 五环服装城, 距离249米, 1456)); infos.add(new Info(34.242152, 108.971971, R.drawable.a04, 老米家泡馍小炒, 距离679米, 1456)); } public Info() { } public Info(double latitude, double longitude, int imgId, String name, String distance, int zan) { super(); this.latitude latitude; this.longitude longitude; this.imgId imgId; this.name name; this.distance distance; this.zan zan; } public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude latitude; } public double getLongitude() { return longitude; } public void setLongitude(double longitude) { this.longitude longitude; } public String getName() { return name; } public int getImgId() { return imgId; } public void setImgId(int imgId) { this.imgId imgId; } public void setName(String name) { this.name name; } public String getDistance() { return distance; } public void setDistance(String distance) { this.distance distance; } public int getZan() { return zan; } public void setZan(int zan) { this.zan zan; } } 在地图中添加overlay /** * 初始化图层 */ public void addInfosOverlay(ListInfo infos) { mBaiduMap.clear(); LatLng latLng null; OverlayOptions overlayOptions null; Marker marker null; for (Info info : infos) { // 位置 latLng new LatLng(info.getLatitude(), info.getLongitude()); // 图标 overlayOptions new MarkerOptions().position(latLng) .icon(mIconMaker).zIndex(5); marker (Marker) (mBaiduMap.addOverlay(overlayOptions)); Bundle bundle new Bundle(); bundle.putSerializable(info, info); marker.setExtraInfo(bundle); } // 将地图移到到最后一个经纬度位置 MapStatusUpdate u MapStatusUpdateFactory.newLatLng(latLng); mBaiduMap.setMapStatus(u); } 为地图上的maker添加点击事件 记得生成TextView的时候先设置背景再设置padding不然可能会失效~~~ private void initMarkerClickEvent(){// 对Marker的点击mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener(){Overridepublic boolean onMarkerClick(final Marker marker){// 获得marker中的数据Info info (Info) marker.getExtraInfo().get(info);InfoWindow mInfoWindow;// 生成一个TextView用户在地图中显示InfoWindowTextView location new TextView(getApplicationContext());location.setBackgroundResource(R.drawable.location_tips);location.setPadding(30, 20, 30, 50);location.setText(info.getName());// 将marker所在的经纬度的信息转化成屏幕上的坐标final LatLng ll marker.getPosition();Point p mBaiduMap.getProjection().toScreenLocation(ll);p.y - 47;LatLng llInfo mBaiduMap.getProjection().fromScreenLocation(p);// 为弹出的InfoWindow添加点击事件//mInfoWindownew InfoWindow(location);mInfoWindow new InfoWindow(location, llInfo,0);location.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {// TODO Auto-generated method stubmBaiduMap.hideInfoWindow();}});// 显示InfoWindowmBaiduMap.showInfoWindow(mInfoWindow);// 设置详细信息布局为可见mMarkerInfoLy.setVisibility(View.VISIBLE);// 根据商家信息为详细信息布局设置信息popupInfo(mMarkerInfoLy, info);return true;}});}布局文件 RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parenttools:context${relativePackage}.${activityClass} com.baidu.mapapi.map.MapViewandroid:idid/id_bmapViewandroid:layout_widthfill_parentandroid:layout_heightfill_parentandroid:clickabletrue /RelativeLayout android:idid/id_marker_info android:visibilitygone android:layout_widthfill_parent android:layout_height220dp android:layout_alignParentBottomtrue android:background#CC4e5a6b android:clickabletrue ImageView android:idid/info_img android:layout_widthfill_parent android:layout_height150dp android:layout_marginBottom10dp android:layout_marginLeft12dp android:layout_marginRight12dp android:layout_marginTop10dp android:alpha1.0 android:backgrounddrawable/map_image_border_white android:clickabletrue android:scaleTypefitXY android:srcdrawable/a04 / RelativeLayout android:layout_widthfill_parent android:layout_height50dp android:layout_alignParentBottomtrue android:backgrounddrawable/bg_map_bottom LinearLayout android:layout_widthfill_parent android:layout_heightwrap_content android:layout_centerVerticaltrue android:layout_marginLeft20dp android:orientationvertical TextView android:idid/info_name android:layout_widthwrap_content android:layout_heightwrap_content android:text老米家泡馍小炒 android:textColor#FFF5EB / TextView android:idid/info_distance android:layout_widthwrap_content android:layout_heightwrap_content android:text距离200米 android:textColor#FFF5EB / /LinearLayout LinearLayout android:layout_widthwrap_content android:layout_heightwrap_content android:layout_alignParentRighttrue android:layout_centerVerticaltrue android:layout_marginRight20dp android:orientationhorizontal ImageView android:layout_widthwrap_content android:layout_heightwrap_content android:onClickzan android:srcdrawable/map_zan / TextView android:idid/info_zan android:layout_widthwrap_content android:layout_heightwrap_content android:layout_gravitycenter android:text652 android:textColor#FFF5EB / /LinearLayout /RelativeLayout /RelativeLayout /RelativeLayout MainActivity完整代码 package com.zj.map2;import java.util.List;import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.BaiduMap.OnMapClickListener; 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.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.OverlayOptions; import com.baidu.mapapi.model.LatLng;import android.app.Activity; import android.graphics.Point; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView;public class MainActivity extends Activity {MapView mapView;BaiduMap mBaiduMap;// 初始化全局 bitmap 信息不用时及时 recycleprivate BitmapDescriptor mIconMaker;private RelativeLayout mMarkerInfoLy;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mapView(MapView) findViewById(R.id.id_bmapView);mMarkerInfoLy (RelativeLayout) findViewById(R.id.id_marker_info);mBaiduMapmapView.getMap();mIconMaker BitmapDescriptorFactory.fromResource(R.drawable.maker);MapStatusUpdate msu MapStatusUpdateFactory.zoomTo(15.0f);mBaiduMap.setMapStatus(msu);initMarkerClickEvent();initMapClickEvent();}private void initMapClickEvent(){mBaiduMap.setOnMapClickListener(new OnMapClickListener(){Overridepublic boolean onMapPoiClick(MapPoi arg0){return false;}Overridepublic void onMapClick(LatLng arg0){mMarkerInfoLy.setVisibility(View.GONE);mBaiduMap.hideInfoWindow();}});}private void initMarkerClickEvent(){// 对Marker的点击mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener(){Overridepublic boolean onMarkerClick(final Marker marker){// 获得marker中的数据Info info (Info) marker.getExtraInfo().get(info);InfoWindow mInfoWindow;// 生成一个TextView用户在地图中显示InfoWindowTextView location new TextView(getApplicationContext());location.setBackgroundResource(R.drawable.location_tips);location.setPadding(30, 20, 30, 50);location.setText(info.getName());// 将marker所在的经纬度的信息转化成屏幕上的坐标final LatLng ll marker.getPosition();Point p mBaiduMap.getProjection().toScreenLocation(ll);p.y - 47;LatLng llInfo mBaiduMap.getProjection().fromScreenLocation(p);// 为弹出的InfoWindow添加点击事件//mInfoWindownew InfoWindow(location);mInfoWindow new InfoWindow(location, llInfo,0);location.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {// TODO Auto-generated method stubmBaiduMap.hideInfoWindow();}});// 显示InfoWindowmBaiduMap.showInfoWindow(mInfoWindow);// 设置详细信息布局为可见mMarkerInfoLy.setVisibility(View.VISIBLE);// 根据商家信息为详细信息布局设置信息popupInfo(mMarkerInfoLy, info);return true;}});}/** * 根据info为布局上的控件设置信息 * * param mMarkerInfo2 * param info */ protected void popupInfo(RelativeLayout mMarkerLy, Info info) { ViewHolder viewHolder null; if (mMarkerLy.getTag() null) { viewHolder new ViewHolder(); viewHolder.infoImg (ImageView) mMarkerLy .findViewById(R.id.info_img); viewHolder.infoName (TextView) mMarkerLy .findViewById(R.id.info_name); viewHolder.infoDistance (TextView) mMarkerLy .findViewById(R.id.info_distance); viewHolder.infoZan (TextView) mMarkerLy .findViewById(R.id.info_zan); mMarkerLy.setTag(viewHolder); } viewHolder (ViewHolder) mMarkerLy.getTag(); viewHolder.infoImg.setImageResource(info.getImgId()); viewHolder.infoDistance.setText(info.getDistance()); viewHolder.infoName.setText(info.getName()); viewHolder.infoZan.setText(info.getZan() ); } /** * 复用弹出面板mMarkerLy的控件 * * author zhy * */ private class ViewHolder { ImageView infoImg; TextView infoName; TextView infoDistance; TextView infoZan; } Overridepublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubgetMenuInflater().inflate(R.menu.main, menu);return super.onCreateOptionsMenu(menu);}Overridepublic boolean onOptionsItemSelected(MenuItem item) {// TODO Auto-generated method stubswitch (item.getItemId()) {case R.id.id_menu_map_addMaker:addInfosOverlay(Info.infos);break;default:break;}return super.onOptionsItemSelected(item);}/*** 初始化图层*/public void addInfosOverlay(ListInfo infos){mBaiduMap.clear();LatLng latLng null;OverlayOptions overlayOptions null;Marker marker null;for (Info info : infos){// 位置latLng new LatLng(info.getLatitude(), info.getLongitude());// 图标overlayOptions new MarkerOptions().position(latLng).icon(mIconMaker).zIndex(5);marker (Marker) (mBaiduMap.addOverlay(overlayOptions));Bundle bundle new Bundle();bundle.putSerializable(info, info);marker.setExtraInfo(bundle);}// 将地图移到到最后一个经纬度位置MapStatusUpdate u MapStatusUpdateFactory.newLatLng(latLng);mBaiduMap.setMapStatus(u);} } 参考链接 Android 百度地图 SDK v3.0.0 三 添加覆盖物Marker与InfoWindow的使用 - Hongyang - 博客频道 - CSDN.NET 效果如下
http://www.yutouwan.com/news/306914/

相关文章:

  • 微商手机网站制作公司哪家好龙湖地产 网站建设
  • 怎么做签到网站成都建站哪家好
  • 网站如何推广引流店铺名称设计logo设计
  • wordpress模板云端青岛自动seo
  • 无锡专业网站推广wordpress设置收费下载
  • 网站首页效果图怎么设计网站备案期间 搜索引擎
  • 灰系网站榆林网站建设vs0912
  • 网站设计尺寸大小公司网站建设岗位
  • 一级域名和二级域名做两个网站自己怎么做视频网站
  • 媒体网站开发小型网站开发用什么语言
  • 兰州优化网站推广南磨房网站建设公司
  • 学习php做毕设网站方向wordpress无法创建文件
  • 网站建设专业名词电商商城平台定制
  • 商务网站建设与维护 ppt一键生成微信小程序
  • 企业网站开发需求详细文档内容网站设计范例
  • 廊坊微信网站建设做网站聊城
  • 网站名称查询做可视化图表的网站
  • 传奇服务器网站如何建设莱芜找工作网站
  • 手机网站收录网站前端工资
  • 湖南免费网站建设证书查询入口官网
  • 网站建设所面临的问题网站搜不出来怎么办
  • 黄州区精神文明建设网站南平抖音搜索排名seo软件
  • 温州网站制作方案ui设计师是青春饭吗
  • 网站建设开公司现在好做吗北京高端设计公司有哪些
  • 宝安高端网站建设公司怎样做淘宝客网站
  • 怎么写代码做网站wordpress数据存储
  • seo网站快排制作网页和网站的区别
  • 临沂网站制作专业做视频课程的网站有哪些
  • 十大最佳摄影网站sem网站推广怎么做
  • 链接点开网页表白的网站怎么做的网站推广的方式和方法