Map_wev8.js
3.47 KB
define("Map_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" >\t<div style="height:${height}px;"></div></div>'}),define(["mUtil","Component","baidumap"],function(p,i){return i.init(function(e){var l={};i.super(this,e),this.type="Map",this.tpl=this.type+"_html",this.css=this.type+"_css";var c="CURRENT_LOCATION",s=this.viewModel={centerPoint:{address:c,coordinateType:-1},additionalPoint:{enabled:!1,coordinateType:2,coordinates:[],showLabel:!0},height:200,zoomLevel:18,standalone:!0};this.beforeMount=function(){"100%"==s.height?s.height=this.$container.height():p.isFunction(s.height)?s.height=s.height():s.height=parseFloat(s.height)},this.mounted=function(){var e=$(".wev-comp-"+this.type+" > div",this.$el),i=s.map=new BMap.Map(e[0]);i.clearOverlays(),i.enableScrollWheelZoom(!0);var n=s.centerPoint.address,t=s.centerPoint.coordinateType,a=function(e){i.centerAndZoom(e,s.zoomLevel),i.addOverlay(new BMap.Marker(e,{icon:new BMap.Icon("/mobilemode/mobile/images/plugin/current-location.png",new BMap.Size(40,40),{imageSize:new BMap.Size(40,40)})})),s.additionalPoint.enabled&&l.getAdditionalPoints(e)};if(-1==t){if(n==c)return Mobile_NS.getCurrentPosition(function(e){var i=new BMap.Point(e.lng,e.lat);a(i)});var o=!1,r=new BMap.LocalSearch(i,{onSearchComplete:function(){if(!o){var e=r.getResults();!e||e.getNumPois()<=0?p.getLabel(5297,"地址:#ADDR# 没有解析到结果!",function(e){p.console.error(e.replace("#ADDR#",n))}):(o=!0,a(e.getPoi(0).point))}}});return r.search(n)}var d=n.split(",");2==d.length?l.convertCoordinate(new BMap.Point(d[0],d[1]),t,function(e){a(e)}):p.getLabel(5296,"经纬度:#ADDR# 格式错误!",function(e){p.console.error(e.replace("#ADDR#",n))})},l.addMarker=function(t,e,i){var n=this;if(t&&t.lng&&t.lat){var a=new BMap.Icon("/mobilemode/mobile/images/plugin/location.png",new BMap.Size(30,30),{imageSize:new BMap.Size(30,30)}),o=function(){p.isFunction(i)&&p.eval(i,n.pageid,t)};l.convertCoordinate(new BMap.Point(t.lng,t.lat),e,function(e){var i=new BMap.Marker(e,{icon:a});if(s.map.addOverlay(i),i.addEventListener("click",function(){o(),window.event.stopPropagation()}),s.additionalPoint.showLabel){var n=new BMap.Label(t.label,{offset:new BMap.Size(15,-25)});i.setLabel(n),n.addEventListener("click",function(){var e=$(this.V);e.parent("span.BMap_Marker").siblings("span.BMap_Marker").find("label.BMapLabel").removeClass("selected"),e.addClass("selected"),o(),window.event.stopPropagation()})}})}else p.getLabel(5296,"经纬度:#ADDR# 格式错误!",function(e){p.console.error(e.replace("#ADDR#",address))})},l.addMarkers=function(e,i,n){p.isArray(e)&&e.forEach(function(e){l.addMarker(e,s.additionalPoint.coordinateType,s.additionalPoint.click)})},l.convertCoordinate=function(e,i,n){var t=new BMap.Convertor;1==i?t.translate([e],3,5,function(e){p.isFunction(n)&&n(e.points[0])}):2==i?p.isFunction(n)&&n(e):3==i&&t.translate([e],1,5,function(e){p.isFunction(n)&&n(e.points[0])})},l.getAdditionalPoints=function(e){if(!s.standalone){var i=p.getActionUrl(this.type,{action:"getAdditionalPoints",mec_id:this.id,lng:e.lng,lat:e.lat},this.pageid);return p.getJSON(i,function(e){l.addMarkers(e.datas,s.additionalPoint.coordinateType,s.additionalPoint.click)})}var n=s.additionalPoint.coordinates;if(p.isFunction(n))return n(e,function(e){l.addMarkers(e,s.additionalPoint.coordinateType,s.additionalPoint.click)});l.addMarkers(n,s.additionalPoint.coordinateType,s.additionalPoint.click)},l.getAdditionalPoints=l.getAdditionalPoints.bind(this),l.addMarker=l.addMarker.bind(this)})});