12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
-
- 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);
- });
|