摘要:目標(biāo),指定經(jīng)緯度,顯示一個(gè)圖片,點(diǎn)擊圖片能顯示相應(yīng)的介紹信息,當(dāng)前屏幕把所有指定的坐標(biāo)點(diǎn)都顯示出來(lái)預(yù)覽效果添加了四個(gè)點(diǎn),紅色定位圖片表示出來(lái)實(shí)現(xiàn)準(zhǔn)備條件配置百度地圖,只要能能顯示百度地圖就定位圖片四個(gè)點(diǎn)經(jīng)緯度代碼實(shí)現(xiàn)構(gòu)建圖標(biāo)初始化四個(gè)點(diǎn)創(chuàng)建
目標(biāo):
1,指定經(jīng)緯度,顯示一個(gè)圖片,點(diǎn)擊圖片能顯示相應(yīng)的介紹信息 2,當(dāng)前屏幕把所有指定的坐標(biāo)點(diǎn)都顯示出來(lái)
預(yù)覽效果:添加了四個(gè)點(diǎn),紅色定位圖片表示出來(lái)
實(shí)現(xiàn)
準(zhǔn)備條件:
配置百度地圖,只要能findViewById(R.id.baidumap)能顯示百度地圖就ok
定位圖片
四個(gè)點(diǎn)經(jīng)緯度
(23.17859302386026,113.41829099999994); (23.174924078737078,113.41754841746837); (23.172392232625878,113.41464769219638); (23.15051685805627,113.4161170382473);
代碼實(shí)現(xiàn)
//構(gòu)建Marker圖標(biāo) BitmapDescriptor bd = BitmapDescriptorFactory .fromResource(R.drawable.location_ic_select);
// 初始化四個(gè)點(diǎn) 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);
//創(chuàng)建OverlayOptions的集合 Listoptions = new ArrayList (); for(LatLng point:list){ //創(chuàng)建OverlayOptions屬性 OverlayOptions option1 = new MarkerOptions() .position(point) .icon(bd); //將OverlayOptions添加到list options.add(option1); } //在地圖上批量添加 mBaiduMap.addOverlays(options); // 讓手機(jī)屏幕顯示出所有點(diǎn) 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); } });
以上代碼便能在地圖上顯示出四個(gè)點(diǎn)了
3. 圖標(biāo)點(diǎn)擊事件:點(diǎn)擊圖標(biāo)后顯示一些信息
// 每個(gè)圖標(biāo)都是一個(gè)Marker,通過(guò)百度地圖的Marker的點(diǎn)擊事件來(lái)達(dá)到想要的效果 mBaiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { // 構(gòu)建一個(gè)需要顯示的view,我這里只是一個(gè)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); //通過(guò)百度地圖來(lái)顯示view mBaiduMap.showInfoWindow(infoWindow); return true; } });
4. 點(diǎn)擊非圖標(biāo)區(qū)域隱藏Marker
// 我這里的解決方法是設(shè)置地圖底圖的點(diǎn)擊事件,來(lái)隱藏marker mMapView.getChildAt(0).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mBaiduMap.hideInfoWindow(); } });結(jié)束
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77102.html
摘要:一前言在使用百度地圖開(kāi)發(fā)的過(guò)程中,查閱百度地圖官網(wǎng)基本上就能滿足開(kāi)發(fā)的需求,但是有時(shí)候需要設(shè)置一些東西,很難在官網(wǎng)上查閱到相關(guān)的方法技巧。希望百度地圖能夠越來(lái)越強(qiáng)大,這樣開(kāi)發(fā)者就可以愉快的開(kāi)發(fā)了 一 前言 在使用百度地圖開(kāi)發(fā)的過(guò)程中,查閱百度地圖官網(wǎng)demo基本上就能滿足開(kāi)發(fā)的需求,但是有時(shí)候需要設(shè)置一些東西,很難在官網(wǎng)上查閱到相關(guān)的方法技巧。筆者特意把開(kāi)發(fā)過(guò)程中遇到的一些疑難雜癥和解...
摘要:不建議底圖選擇中存在兩種不同坐標(biāo)體系,如下圖坐標(biāo)存在明顯的偏差,火星坐標(biāo)在采用坐標(biāo)系的地圖上位置偏上彩色中國(guó)天地圖全球衛(wèi)星地圖例如我們使用的類(lèi)進(jìn)行查找,返回的數(shù)據(jù)都是國(guó)際坐標(biāo),因此必須進(jìn)行偏差糾正。 ArcGIS for javascript開(kāi)發(fā)心得 本次實(shí)例中采用ArcGIS for javascript3.24版本,由于版本3與4在API等存在較大區(qū)別,就不一一列舉,詳細(xì)區(qū)別看官方...
摘要:渲染能力采用渲染除了對(duì)使用,一般來(lái)說(shuō),更適合繪制圖形元素?cái)?shù)量非常大這一般是由數(shù)據(jù)量大導(dǎo)致的圖表如熱力圖地理坐標(biāo)系或平行坐標(biāo)系上的大規(guī)模線圖或散點(diǎn)圖等,也利于實(shí)現(xiàn)某些視覺(jué)特效如交通圖。 一.簡(jiǎn)介 echartsecharts是百度公司前端開(kāi)發(fā)的一個(gè)圖表庫(kù),2013年發(fā)布第一版,主要采用canvas畫(huà)圖,目前版本3.8.4;完全免費(fèi); highcharthighcharts是國(guó)外的一家公司...
摘要:邊繪制成折線的時(shí)候?yàn)閮煞N形式,默認(rèn)是通過(guò)貝塞爾曲線繪制成帶圓角的折線,另一種是直角折線。在開(kāi)發(fā)中我對(duì)邊的繪制方式進(jìn)行了小小的修改,統(tǒng)一改為直接使用三次貝塞爾曲線連接,具體代碼如下調(diào)用內(nèi)置函數(shù)繪制三次貝塞爾曲線忽略后面繪制折線的代碼參考 mxGraph是一個(gè)支持多種語(yǔ)言(Java、JavaScript、PHP、.NET)的畫(huà)圖框架,所繪制的圖形可以在主流瀏覽器以及原生應(yīng)用上使用。mxGr...
閱讀 2469·2019-08-30 15:53
閱讀 2583·2019-08-29 13:11
閱讀 2670·2019-08-29 12:45
閱讀 3497·2019-08-29 12:41
閱讀 2340·2019-08-26 10:14
閱讀 2167·2019-08-23 14:39
閱讀 2319·2019-08-23 12:38
閱讀 3384·2019-08-23 12:04