public
This commit is contained in:
94
public/static/lib/likeMap/likeMap.js
Normal file
94
public/static/lib/likeMap/likeMap.js
Normal file
@ -0,0 +1,94 @@
|
||||
|
||||
layui.define(["jquery", "form"], function (exports) {
|
||||
var markersArray = [];
|
||||
var map = new BMap.Map("map");
|
||||
var geoc = new BMap.Geocoder();
|
||||
|
||||
var obj = {
|
||||
/**
|
||||
* 初始化
|
||||
*/
|
||||
init: function (longitude, latitude) {
|
||||
new BMap.Geolocation();
|
||||
var local = new BMap.LocalSearch(map, { renderOptions: {map: map} });
|
||||
var point = new BMap.Point(longitude, latitude)
|
||||
map.centerAndZoom(point, 16);
|
||||
map.addEventListener("click", obj.showInfo);
|
||||
|
||||
obj.searchMap(local);
|
||||
},
|
||||
/**
|
||||
* 清除标识
|
||||
*/
|
||||
clearOverlays: function() {
|
||||
if (markersArray) {
|
||||
for (i in markersArray) {
|
||||
map.removeOverlay(markersArray[i])
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 地图上标注
|
||||
*/
|
||||
addMarker: function (point) {
|
||||
var marker = new BMap.Marker(point);
|
||||
markersArray.push(marker);
|
||||
obj.clearOverlays();
|
||||
map.addOverlay(marker);
|
||||
},
|
||||
/**
|
||||
* 点击地图事件处理
|
||||
*/
|
||||
showInfo: function (e) {
|
||||
$("input[name='longitude']").val(e.point.lng);
|
||||
$("input[name='latitude']").val(e.point.lat);
|
||||
geoc.getLocation(e.point, function (rs) {
|
||||
var addComp = rs.addressComponents;
|
||||
var info_address = addComp.street + addComp.streetNumber;
|
||||
if(info_address !== ''){
|
||||
$("input[name='address']").val(info_address);
|
||||
}
|
||||
});
|
||||
obj.addMarker(e.point);
|
||||
},
|
||||
/**
|
||||
* 搜索地图
|
||||
* @param local
|
||||
*/
|
||||
searchMap: function (local) {
|
||||
$(document).on('click', '#searchMap', function() {
|
||||
var province_id = $("#province");
|
||||
var city_id = $("#city");
|
||||
var district_id = $("#district");
|
||||
var shop_address = $("input[name='address']").val();
|
||||
|
||||
if(province_id.val() === null){
|
||||
layer.open({icon:2, time:2000, content:"请选择省份"});
|
||||
return;
|
||||
}
|
||||
if(city_id.val() === null){
|
||||
layer.open({icon:2, time:2000, content:"请选择市"});
|
||||
return;
|
||||
}
|
||||
if(district_id.val() === null){
|
||||
layer.open({icon:2,time:2000,content:"请选择镇/区"});
|
||||
return;
|
||||
}
|
||||
|
||||
var address = province_id.find("option:selected").text() + city_id.find("option:selected").text() + district_id.find("option:selected").text() + shop_address;
|
||||
|
||||
//找到最符合的标注a点坐标
|
||||
local.setSearchCompleteCallback(function (searchResult) {
|
||||
var poi = searchResult.getPoi(0);
|
||||
$("input[name='longitude']").val(poi.point.lng);
|
||||
$("input[name='latitude']").val(poi.point.lat); //获取经度和纬度,将结果显示在文本框中
|
||||
map.centerAndZoom(poi.point, 13);
|
||||
});
|
||||
local.search(address);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
exports("likeMap", obj);
|
||||
});
|
||||
Reference in New Issue
Block a user