123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
-
- layui.define(["jquery", "form"], function (exports) {
- var center,map,marker,geocoder,address = null;
- var obj = {
- init: function (init_lat, init_log) {
- var lat = 39.9088;
- var log = 116.3987;
- if(init_log && init_lat){
- log = init_log;
- lat = init_lat;
- }
-
- center = new qq.maps.LatLng(lat, log);
-
- map = new qq.maps.Map("map-container", {
- center: center, //设置中心位置
- zoom:14, //设置地图缩放级别
- draggableCursor : 'https://mapapi.qq.com/web/lbs/javascriptV2/demo/img/c1.cur', //设置鼠标拖拽元素样式
- draggingCursor : 'https://mapapi.qq.com/web/lbs/javascriptV2/demo/img/c2.cur' //设置鼠标移动样式
- });
- if(init_log && init_lat){
- marker = new qq.maps.Marker({
- position:center,
- map:map,
- animation: qq.maps.MarkerAnimation.BOUNCE,
- icon:'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerNew.png'
- });
- }
- obj.click_map();
- obj.search_map();
- },
- click_map:function () {
- //地址和经纬度之间进行转换服务
- geocoder = new qq.maps.Geocoder();
-
- // //添加监听事件 获取鼠标点击事件
- qq.maps.event.addListener(map, 'click', function(event) {
- geocoder.getAddress(event.latLng);
- });
-
- //解析地址
- geocoder.setComplete(function(result) {
- map.setCenter(result.detail.location);
- var address_detail = '';
- if(result.detail.addressComponents.streetNumber){
- address_detail = result.detail.addressComponents.streetNumber
- }else{
- address_detail = result.detail.addressComponents.street
- }
- $("input[name='address']").val(address_detail);
- //设置标记点
- if(!marker) {
- marker = new qq.maps.Marker({
- position:result.detail.location,
- map:map,
- animation: qq.maps.MarkerAnimation.BOUNCE,
- icon:'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerNew.png'
- });
- }else{
- marker.setPosition(result.detail.location);
- }
- $("input[name='longitude']").val(result.detail.location.lng);
- $("input[name='latitude']").val(result.detail.location.lat);
-
- });
- //解析失败
- geocoder.setError(function() {
- layui.layer.msg("地址解析错误,请重新选择");
- });
- },
- search_map:function () {
- $(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;
- }
- address = province_id.find("option:selected").text() + city_id.find("option:selected").text() + district_id.find("option:selected").text() + shop_address;
- searchService.search(address);
- })
- var searchService = new qq.maps.SearchService({
- complete : function(results){
- if(results.type === "CITY_LIST") {
- searchService.setLocation(results.detail.cities[0].cityName);
- searchService.search(address);
- return;
- }
- var pois = results.detail.pois;
- var latlngBounds = new qq.maps.LatLngBounds();
-
- for(var i = 0,l = pois.length;i < l; i++){
- var poi = pois[i];
- latlngBounds.extend(poi.latLng);
- var markers = new qq.maps.Marker({
- map:map,
- position: poi.latLng,
- icon:'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/markerDefault.png'
- });
- markers.setTitle(poi.name);
- }
- map.fitBounds(latlngBounds);
- }
- });
- }
- };
- exports("txMap", obj);
- });
|