目錄
目錄X
WebFuture系統(tǒng)的“地理位置”擴展字段如何在前臺展示
當(dāng)有項目需要展示地圖定位時,可以用到這個類型的擴展字段,該類型字段記錄的是經(jīng)度和緯度,以字符串形式存儲。
那么想要在前臺展示地圖,并且定位在設(shè)置的經(jīng)緯度,我們可以用到百度地圖。
一、建立擴展字段
二、申請百度地圖開放平臺訪問應(yīng)用AK
三、生成地圖初始化代碼
可以直接使用地圖生成器,把訪問應(yīng)用AK放置上去:https://api.map.baidu.com/lbsapi/createmap/index.html
四、提取字段的經(jīng)度和緯度
@if (!string.IsNullOrEmpty(Model.ExtendObject.dlwz)) { string dlwz = Model.ExtendObject.dlwz.Trim('P', 'O', 'I', 'N', 'T', '(', ')'); string[] dlwzs = dlwz.Split(' '); <span>經(jīng)度: @dlwzs[0]</span> <span>緯度: @dlwzs[1]</span> }
五、制作模板-最終效果
@*內(nèi)容頁模板*@ @Power.VisualizationView(new { Area = "ContentManage", Controller = "Article" }) @model Article @{ Layout = $"~/Views/{this.Context.GetCurrentSite().Identifier}/Layout/公共布局頁.cshtml"; } @{ string[] maps = new string[] { "113.280338", "23.137723" }; if (!string.IsNullOrEmpty(Model.ExtendObject.Map)) { string map = Model.ExtendObject.Map.Trim('P', 'O', 'I', 'N', 'T', '(', ')'); maps = map.Split(' '); } } <!-- content S --> <div id="content"> <div class="map" id="map"></div> </div> <!-- content E --> @section scripts{ <script src="http://api.map.baidu.com/api?v=2.0&ak=R21qBY07n3H5P2cwSZKfZAKdHAbiTpIq"></script> <script> //創(chuàng)建和初始化地圖函數(shù): function initMap(){ createMap();//創(chuàng)建地圖 setMapEvent();//設(shè)置地圖事件 addMapControl();//向地圖添加控件 addMapOverlay();//向地圖添加覆蓋物 } function createMap(){ map = new BMap.Map("map"); map.centerAndZoom(new BMap.Point(@maps[0],@maps[1]),18); } function setMapEvent(){ map.enableScrollWheelZoom(); map.enableKeyboard(); map.enableDragging(); map.enableDoubleClickZoom() } function addClickHandler(target,window){ target.addEventListener("click",function(){ target.openInfoWindow(window); }); } function addMapOverlay(){ var markers = [ {content:"@Model.Subheading",title:"@Model.Title",imageOffset: {width:-46,height:-21},position:{lat:@maps[1],lng:@maps[0]}} ]; for(var index = 0; index < markers.length; index++ ){ var point = new BMap.Point(markers[index].position.lng,markers[index].position.lat); var marker = new BMap.Marker(point,{icon:new BMap.Icon("http://api.map.baidu.com/lbsapi/createmap/images/icon.png",new BMap.Size(20,25),{ imageOffset: new BMap.Size(markers[index].imageOffset.width,markers[index].imageOffset.height) })}); var label = new BMap.Label(markers[index].title,{offset: new BMap.Size(25,5)}); var opts = { width: 200, title: markers[index].title, enableMessage: false }; var infoWindow = new BMap.InfoWindow(markers[index].content,opts); marker.setLabel(label); addClickHandler(marker,infoWindow); map.addOverlay(marker); }; } //向地圖添加控件 function addMapControl(){ var navControl = new BMap.NavigationControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,type:3}); map.addControl(navControl); } var map; initMap(); </script> }
這里定義了一個默認的經(jīng)緯度,防止空值出現(xiàn)錯誤。
標題作為定位名稱,副標題作為定位簡介。
用戶登錄
還沒有賬號?
立即注冊