GIS地图引入

GIS地图的引入首先需要将地图发布在iserver中,然后获取到它发布的URL

var host, url;

host = 'http://192.168.191.1:8090';//域名

url = host + '/iserver/services/map-Map/rest/maps/Map';//行政图

       //创建地图控件

    function init() {

        map = new SuperMap.Map ("map");

        //创建分块动态REST图层,该图层显示iserver 8C 服务发布的地图,

        //其中"world"为图层名称,url图层的服务地址,{transparent: true}

        //maxResolution设置到url的可选参数图层实例化的时候设置图层最大的分辨率,默认最大的是360度/256像素(投影为4326),

        //相当于缩放级别为0级。 不同的投影下maxResolution会不同,内部会进行计算。

        //transparent(图层是否透明,默认为false) 和cacheEnabled(是否使用服务端的缓存,默认为true)

        layer = new SuperMap.Layer.TiledDynamicRESTLayer("World", url,null, {maxResolution:"auto"});

        layer.events.on({"layerInitialized": addLayer});

    }

    function addLayer() {

        //将Layer图层加载到Map对象上

        map.addLayer(layer);

        //出图,map.setCenter函数显示地图

        map.setCenter(new SuperMap.LonLat(0, 0), 0);

    }

然后我们还要获取数据库的地图URL,首先我们要创建一张新的数据库表,记录地图的地址

GIS地图引入

 

然后引入到项目中,并给它创建一个方法

        //查询地图url

        public ActionResult getMapUrl()

        {

            var dbMapUrl = myShenZhenBaoAnEntities.S_MapPath.ToList();//查询url

            return Json(dbMapUrl, JsonRequestBehavior.AllowGet);

        }

然后引用方法

            //获取数据库的地图url

            $.post("/index/getMapUrl", function (data) {

                console.log(data[1]);

                if (data.length > 0) {

                    host = data[0].Port;//域名

                    url = host + data[1].Port;//行政图

                    layer = new SuperMap.Layer.TiledDynamicRESTLayer("Map",

               url,//图层的服务地址,是数组也可以是单个url,前者支持多地图服务轮询出图,大大提高显示速度。

                {

                    transparent: true,//transparent(图层是否透明,默认为false)

                    cacheEnabled: true//cacheEnabled(是否使用服务端的缓存,默认为true)

                }, {

                    maxResolution: "auto",// 在图层实例化的时候设置图层最大的分辨率,默认最大的是360度/256像素(投影为4326),相当于缩放级别为0级。 不同的投影下maxResolution会不同,内部会进行计算。

                    // useCanvas: false,////设置是否将一个图层用Canvas元素显示,默认为true,使用Canvas显示。 图层在初始化时会进行浏览器检测,若不支持Canvas方式显示时,自动处理为Image 方式出图,该属性会被设置成false。

                    useCORS: true//使用跨域资源共享策略,这时请求的瓦片必须带有”access-control-allow-origin”响应头, 但是此时瓦片不带cookies信息,如果要带上cookies的信息,还要加一个响应头——”access-control-allow-credentials”, 如果”access-control-allow-origin”响应头不能为”*”,否则也没有cookies信息。默认为:false

                    //如果useCORS设置了 false ,就不能截图了,就会出错

                });

                    layer.isBaseLayer = true;

                    layer.bool = true;

                    //监听图层信息加载完成事件

                    layer.events.on({

                        "layerInitialized": addLayer1,//底图加载完成事件

                        "loadstart": loadstartMap,//当图层开始加载时触发事件。

                        "loadend": loadendMap//当图层结束加载时候触发事件。

                    });

                }

            });

            markerLayermzj = new SuperMap.Layer.Markers("markerLayerPoint");

        });

最后显示出iserver中的地图

 

GIS地图引入