123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- Namespace.register("U.Map"); /* 12软件林志雄*/
- /*
- 需要的变量 :城市名 详细地址 地图级别 地图的宽高 父亲节点
- */
- U.Map.defaults = { //默认初始化
- "city": "深圳市", "width": "1000", "height": "500", "em": "body", "add": "深圳市罗湖区人民北路金溪大厦"
- }
- U.Map.defaults.init = function (obj) { //传进来的json值进行覆盖
- for (var i in obj) { U.Map.defaults[i] = obj[i]; }
- return U.Map.defaults;
- }
- U.Map.Qs = function (info, _L, _T) {//起始 @parm add 详细地址 @parm city 填城市名 @parm width 元素的宽 @parm height 元素的高 @parm em 父级
- info = U.Map.defaults.init(info);
- //U.Map.ceateEle(info); //创建元素
- var Total = info.em;
- var mapTotal = $$("div", { "id": "U_M_Total", style: { "position": "relative", "width": info.width + "px"} }, Total); //地图创建
- var result = $$("div", { "id": "map-result", style: { "margin-top": 10 + "px", "position": "absolute", "top": 10 + "px", "right": 10 + "px", "z-index": "99"} }, mapTotal); //搜索框创建
- $$("input", { "id": "suggestId", "type": "text", style: { "width": 260 + "px", "padding-top": 9 + "px", "padding-bottom": 9 + "px", "padding-left": 10 + "px", "font-size": 14 + "px", "color": "#333" }, "placeholder": "请输入地址" }, result);
- $$("div", { "id": "searchBtn", style: { "width": 43 + "px", "height": "38" + "px", "float": "right", "background": "url('http://d.1473.cn/controls/pc/Map/searchicon.png')", "cursor": "pointer"} }, result);
- $$("div", { "id": "l-map", style: { "height": info.height + "px", "width": info.width + "px"} }, mapTotal); //地图创建
- //var ss = U.Map.defaults();
- //var s = U.Map.defaults.apply(U.Map.defaults, ([""]));
- cityinfo = info.add;
- city = "深圳市";
- var map = new BMap.Map("l-map");
- var myGeo = new BMap.Geocoder();
- var top_left_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_TOP_LEFT }); // 左上角,添加比例尺
- var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件
- map.addControl(top_left_control);
- map.addControl(top_left_navigation);
- myGeo.getPoint(cityinfo, function (point) { // 将地址解析结果显示在地图上,并调整地图视野
- if (point) {
- map.centerAndZoom(point, 20); // 初始化地图,设置城市和地图级别。
- map.addOverlay(new BMap.Marker(point));
- info.em[0].contentWindow.document.body.appendChild(mapTotal);
- $(mapTotal).addClass("UCD_IF_CT"); U.CD.L.AppendIF(mapTotal, info.em, _L, _T);
- // document.body.appendChild($("#tangram-suggestion--TANGRAM__1x-main")[0])
- sss();
- } else {
- alert("您选择地址没有解析到结果!");
- }
- }, city);
- // map.centerAndZoom("深圳", 20);
- function sss() {
- var top_left_control = new BMap.ScaleControl({ anchor: BMAP_ANCHOR_TOP_LEFT }); // 左上角,添加比例尺
- var top_left_navigation = new BMap.NavigationControl(); //左上角,添加默认缩放平移控件
- map.addControl(top_left_control);
- map.addControl(top_left_navigation);
- var ac = new BMap.Autocomplete( //建立一个自动完成的对象
- {"input": "suggestId"
- , "location": map
- });
- ac.addEventListener("onhighlight", function (e) { //鼠标放在下拉列表上的事件
- var str = "";
- var _value = e.fromitem.value;
- var value = "";
- if (e.fromitem.index > -1) {
- value = _value.province + _value.city + _value.district + _value.street + _value.business;
- }
- str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value;
- value = "";
- if (e.toitem.index > -1) {
- _value = e.toitem.value;
- value = _value.province + _value.city + _value.district + _value.street + _value.business;
- }
- str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value;
- $("#searchResultPanel").innerHTML = str;
- });
- var myValue;
- ac.addEventListener("onconfirm", function (e) { //鼠标点击下拉列表后的事件
- var _value = e.item.value;
- myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
- $("#searchResultPanel").innerHTML = "onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue;
- U.Map.setPlace();
- });
- U.Map.setPlace = function () {//搜索函数
- map.clearOverlays(); //清除地图上所有覆盖物
- U.Map.fun = function () {
- var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
- map.centerAndZoom(pp, 20);
- map.addOverlay(new BMap.Marker(pp)); //添加标注
- }
- var local = new BMap.LocalSearch(map, { //智能搜索
- onSearchComplete: U.Map.fun
- });
- local.search(myValue);
- }
- }
- }
- U.Map.ceateEle = function (info) { //创建地图元素 @param
- //var Total = $("#" + info.em)[0];
- var Total = info.em;
- var mapTotal = $$("div", { "id": "U_M_Total", style: { "position": "relative", "width": info.width + "px"} }, Total); //地图创建
- var result = $$("div", { "id": "map-result", style: { "margin-top": 10 + "px", "position": "absolute", "top": 10 + "px", "right": 10 + "px", "z-index": "99"} }, mapTotal); //搜索框创建
- $$("input", { "id": "suggestId", "type": "text", style: { "width": 260 + "px", "padding-top": 9 + "px", "padding-bottom": 9 + "px", "padding-left": 10 + "px", "font-size": 14 + "px", "color": "#333" }, "placeholder": "请输入地址" }, result);
- $$("div", { "id": "searchBtn", style: { "width": 43 + "px", "height": "38" + "px", "float": "right", "background": "url('searchicon.png')", "cursor": "pointer"} }, result);
- $$("div", { "id": "l-map", style: { "height": info.height + "px", "width": info.width + "px"} }, Total); //地图创建
- }
- U.Map.drapMap = function (obj) {
- return U.Map.Qs(obj);
- }
|