摘要:目標,指定經緯度,顯示一個圖片,點擊圖片能顯示相應的介紹信息,當前屏幕把所有指定的坐標點都顯示出來預覽效果添加了四個點,紅色定位圖片表示出來實現準備條件配置百度地圖,只要能能顯示百度地圖就定位圖片四個點經緯度代碼實現構建圖標初始化四個點創建
目標:
1,指定經緯度,顯示一個圖片,點擊圖片能顯示相應的介紹信息 2,當前屏幕把所有指定的坐標點都顯示出來
預覽效果:添加了四個點,紅色定位圖片表示出來
實現
準備條件:
配置百度地圖,只要能findViewById(R.id.baidumap)能顯示百度地圖就ok
定位圖片
四個點經緯度
(23.17859302386026,113.41829099999994); (23.174924078737078,113.41754841746837); (23.172392232625878,113.41464769219638); (23.15051685805627,113.4161170382473);
代碼實現
//構建Marker圖標 BitmapDescriptor bd = BitmapDescriptorFactory .fromResource(R.drawable.location_ic_select);
// 初始化四個點 Listlist = new ArrayList<>(); LatLng point1 = new LatLng(23.17859302386026,113.41829099999994); LatLng point2 = new LatLng(23.174924078737078,113.41754841746837); LatLng point3 = new LatLng(23.172392232625878,113.41464769219638); LatLng point4 = new LatLng(23.15051685805627,113.4161170382473); list.add(point1); list.add(point2); list.add(point3); list.add(point4);
//創建OverlayOptions的集合 Listoptions = new ArrayList (); for(LatLng point:list){ //創建OverlayOptions屬性 OverlayOptions option1 = new MarkerOptions() .position(point) .icon(bd); //將OverlayOptions添加到list options.add(option1); } //在地圖上批量添加 mBaiduMap.addOverlays(options); // 讓手機屏幕顯示出所有點 mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() { @Override public void onMapLoaded() { LatLngBounds.Builder builder = new LatLngBounds.Builder(); for(LatLng latLng : list){ builder = builder.include(latLng); } LatLngBounds latlngBounds = builder.build(); MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(latlngBounds,mMapView.getWidth(),mMapView.getHeight()); mBaiduMap.animateMapStatus(u); } });
以上代碼便能在地圖上顯示出四個點了
3. 圖標點擊事件:點擊圖標后顯示一些信息
// 每個圖標都是一個Marker,通過百度地圖的Marker的點擊事件來達到想要的效果 mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { // 構建一個需要顯示的view,我這里只是一個textview,也可以是其他的布局 TextView tv = new TextView(mContext); tv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); tv.setBackgroundResource(R.drawable.shape_buttn_text); tv.setText("hello world"); // -130表示的是y軸的便宜量 InfoWindow infoWindow =new InfoWindow(tv,marker.getPosition(),-130); //通過百度地圖來顯示view mBaiduMap.showInfoWindow(infoWindow); return true; } });
4. 點擊非圖標區域隱藏Marker
// 我這里的解決方法是設置地圖底圖的點擊事件,來隱藏marker mMapView.getChildAt(0).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mBaiduMap.hideInfoWindow(); } });結束
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77102.html
摘要:一前言在使用百度地圖開發的過程中,查閱百度地圖官網基本上就能滿足開發的需求,但是有時候需要設置一些東西,很難在官網上查閱到相關的方法技巧。希望百度地圖能夠越來越強大,這樣開發者就可以愉快的開發了 一 前言 在使用百度地圖開發的過程中,查閱百度地圖官網demo基本上就能滿足開發的需求,但是有時候需要設置一些東西,很難在官網上查閱到相關的方法技巧。筆者特意把開發過程中遇到的一些疑難雜癥和解...
摘要:不建議底圖選擇中存在兩種不同坐標體系,如下圖坐標存在明顯的偏差,火星坐標在采用坐標系的地圖上位置偏上彩色中國天地圖全球衛星地圖例如我們使用的類進行查找,返回的數據都是國際坐標,因此必須進行偏差糾正。 ArcGIS for javascript開發心得 本次實例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區別,就不一一列舉,詳細區別看官方...
摘要:渲染能力采用渲染除了對使用,一般來說,更適合繪制圖形元素數量非常大這一般是由數據量大導致的圖表如熱力圖地理坐標系或平行坐標系上的大規模線圖或散點圖等,也利于實現某些視覺特效如交通圖。 一.簡介 echartsecharts是百度公司前端開發的一個圖表庫,2013年發布第一版,主要采用canvas畫圖,目前版本3.8.4;完全免費; highcharthighcharts是國外的一家公司...
摘要:邊繪制成折線的時候為兩種形式,默認是通過貝塞爾曲線繪制成帶圓角的折線,另一種是直角折線。在開發中我對邊的繪制方式進行了小小的修改,統一改為直接使用三次貝塞爾曲線連接,具體代碼如下調用內置函數繪制三次貝塞爾曲線忽略后面繪制折線的代碼參考 mxGraph是一個支持多種語言(Java、JavaScript、PHP、.NET)的畫圖框架,所繪制的圖形可以在主流瀏覽器以及原生應用上使用。mxGr...
閱讀 2457·2019-08-30 15:53
閱讀 2572·2019-08-29 13:11
閱讀 2653·2019-08-29 12:45
閱讀 3486·2019-08-29 12:41
閱讀 2326·2019-08-26 10:14
閱讀 2154·2019-08-23 14:39
閱讀 2314·2019-08-23 12:38
閱讀 3378·2019-08-23 12:04