|
define(function(require){
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
var map;
var Model = function(){
this.callParent();
};
Model.prototype.modelLoad = function(event){
var id = this.getIDByXID("baiduMap");
var self = this;
var data=this.comp("statusData");
window._baiduInit = function() {
map = new BMap.Map(id,{minZoom:2,enableMapClick:false}); //创建地图对象,可以设置地图缩放最大最小级别,设置是否显示POI点击
var geoc = new BMap.Geocoder();
//map.centerAndZoom("长春",11); //以城市名称为参数设置地图
map.centerAndZoom(new BMap.Point(125.276579, 43.852057), 13); //以坐标点为中心设置地图
//map.addControl(new BMap.MapTypeControl()); //添加地图显示类型控件(地图,卫星图,和3D模型显示)
//map.disableDragging(); //设置地图禁止拖动
map.enableScrollWheelZoom(true); //设置允许鼠标滚轮缩放地图
map.enableContinuousZoom(); //设置连续缩放
var pointA = new BMap.Point(125.310364,43.873797); // 创建点坐标A
var pointB = new BMap.Point(125.367928,43.857159); // 创建点坐标B
var pointC = new BMap.Point(125.319132,43.830163); // 创建坐标C
//alert('从A点到B点的距离是:'+(map.getDistance(pointA,pointB)).toFixed(2)+' 米。'); //获取两点距离,保留小数点后两位
//在地图上添加折线
//设置地图显示范围,如果用户在平移地图超过设置区域,会弹回设置区域
//右上角,添加默认缩放平移控件
// 添加定位控件
//添加城市列表
//在地图两点上生成一条路线规划
map.addEventListener("click",function(e){ //增加鼠标点击事件
map.clearOverlays();
map.addOverlay(new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat))); //增加点
geoc.getLocation(e.point, function(rs){
var addComp = rs.addressComponents;
data.setValue("curLng",rs.point.lng);
data.setValue("curLat",rs.point.lat);
data.setValue("province",addComp.province);
data.setValue("city",addComp.city);
data.setValue("district",addComp.district);
data.setValue("street",addComp.street);
data.setValue("streetNumber",addComp.streetNumber);
data.setValue("business",rs.business);
data.setValue("address",rs.address);
//G("div403").innerHTML = addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
self.comp("statusData").setValue("editStatus","查看");
});
});
function G(id) {
return document.getElementById(id);
}
var ac = new BMap.Autocomplete( //建立一个自动完成的对象
{"input" : "suggestId",
"location" : map
});
var myValue;
ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件
var _value = e.item.value;
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
G("searchResultPanel").innerHTML ="onconfirm<br>index = " + e.item.index + "<br>myValue = " + myValue;
setPlace();
});
function setPlace(){
map.clearOverlays(); //清除地图上所有覆盖物
function myFun(){
var pp = local.getResults().getPoi(0).point; //获取第一个智能搜索的结果
map.centerAndZoom(pp, 18);
map.addOverlay(new BMap.Marker(pp)); //添加标注
geoc.getLocation(pp, function(rs){
var addComp = rs.addressComponents;
data.setValue("curLng",rs.point.lng);
data.setValue("curLat",rs.point.lat);
data.setValue("province",addComp.province);
data.setValue("city",addComp.city);
data.setValue("district",addComp.district);
data.setValue("street",addComp.street);
data.setValue("streetNumber",addComp.streetNumber);
data.setValue("business",rs.business);
data.setValue("address",rs.address);
//G("div403").innerHTML = addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber;
});
self.comp("statusData").setValue("editStatus","查看");
}
var local = new BMap.LocalSearch(map, { //智能搜索
onSearchComplete: myFun
});
local.search(myValue);
}
}
require([ 'http://api.map.baidu.com/api?v=2.0&ak=o9pzum8sF8s3wqodZnt9S5OsKlLdjOil&callback=_baiduInit' ], function() {
if (window.BMap && window.BMap.Map) {
window._baiduInit();
}
});
};
Model.prototype.searchBtnClick = function(event){
var data=this.comp("statusData");
alert("当前位置经度: "+data.val("curLng")+"r当前位置维度:"+data.val("curLat")+"r当前位置省份:"+data.val("province")+"r当前位置城市:"+data.val("city")+"r当前位置县区:"+data.val("district")+"r当前位置镇级街道:"+data.val("street")+"r当前位置街道号:"+data.val("streetNumber")+"r当前位置商业机构:"+data.val("business")+"r当前位置地址:"+data.val("address"));
};
Model.prototype.div2Click = function(event){
this.comp("statusData").setValue("editStatus","编辑");
};
return Model;
});
|