BIGEMAP卫星地图_高清卫星地图_北斗高清地图_地图软件_矢量地图数据_专题地图

BIGEMPA Js API示例中心

KML糾偏源代碼展示

代碼編輯區 運行 下載 還原
<!DOCTYPE html>
<html>

<head>
    <meta charset='UTF-8' />
    <meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
    <!--
        以下CSS地址請在安裝軟件了替換成本地的地址
        CSS地址請使用:
        http://192.168.1.222:9000/bigemap.js/v2.1.0/bigemap.css
        軟件下載地址 http://www.cnhrsm.com/reader/download/detail201802017.html
    -->
    <link href='http://www.cnhrsm.com:9000/bigemap.js/v2.1.0/bigemap.css' rel='stylesheet' />
    <link href="http://www.cnhrsm.com/Public/css/button.min.css" rel="stylesheet">
    <!--
        JS地址請使用:
        http://192.168.1.222:9000/bigemap.js/v2.1.0/bigemap.js
    -->
    <script src='http://www.cnhrsm.com:9000/bigemap.js/v2.1.0/bigemap.js'></script>
    <!--
        引入加載KML的JS插件
    -->
    <script type="text/javascript" src="http://www.cnhrsm.com/mapoffline/js/togeojson.js"></script>
    <!-- 引入Geojson轉換KML的js插件 -->
    <script src="http://demo.bigemap.com/static/map/js/tokml.js"></script>
    <style>
        body {
            margin: 0;
            padding: 0;
        }

        #map {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 100%;
        }

        .tool {
            position: absolute;
            z-index: 10;
            right: 10px;
            top: 60px;
        }

        .info {
            position: fixed;
            top: 40px;
            color: #8a6d3b;
            z-index: 99;
            margin: 0;
            background-color: #fcf8e3;
            border-color: #faebcc;
            left: 0;
            right: 0;
            text-align: center;
        }

        #ceng {
            position: absolute;
            top: 120px;
            left: 0;
            z-index: 10;

        }

        #ceng::before {
            content: '當前地圖源:';
            position: absolute;
            left: 0;
            right: 0;
            bottom: -10px;
            padding: 5px 10px;
            top: -40px;
            background-color: #369;
            border-radius: 5px;
            font-size: 14px;
            color: #fff;
            z-index: -1;
        }

        #checkExport {
            display: none;
            position: absolute;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
            width: 600px;
            height: 400px;
            background-color: skyblue;
            border: slategrey 1px solid;
            z-index: 10000;
            padding: 10px 0 0 10px;
        }

        #checkExport>div {
            padding: 10px;
            outline: turquoise 1px solid;
        }

        #checkExport>button {
            position: absolute;
            right: 0;
            top: 0;
            margin: 5px 5px 0 0;
        }
    </style>
    <title>切換圖層</title>
</head>

<body>
    <p class="info">
        數據保存在本地,刷新會消失,僅僅用作測試,左側僅供糾偏效果展示使用,切換會清楚當前覆蓋物
    </p>
    <p class="tool">
        <a id="satellite" class="button button-tiny button-rounded button-primary" href="javascript:void (0);">導入KML</a>
        <a id="export" class="button button-tiny button-rounded button-primary" href="javascript:void (0);">導出</a>
        <input type="file" accept=".kml,.json,.geojson" style="display: none" id="upload">
    </p>
    <div id="ceng">
        <a href="javascript:void(0)" data-type="zhongkexingtu" data-map="arcgis"
            class="button button-tiny button-rounded">arcgis(wgs 84)</a>
        <a href="javascript:void(0)" data-type="baidu-map" data-map="baidu"
            class="button button-tiny button-rounded">百度(bd09)</a>
        <a href="javascript:void(0)" data-type="amap-map" data-map="amap"
            class="button button-tiny button-rounded button-primary">高德(gcj02)</a>
    </div>
    <div id="checkExport">
        <div>
            <span>導入數據坐標系</span>
            <select name="" id="from">
                <option value="">請選擇</option>
                <option value="WGS84">WGS84(無偏移)</option>
                <option value="Gcj-02">火星坐標系(Gcj-02)</option>
                <option value="BD-09">百度坐標系(BD-09)</option>
            </select>
        </div>
        <div>
            <span>導出數據源</span>
            <select name="" id="to" autofocus>
                <option value="">請選擇</option>
                <option value="WGS84">WGS84(無偏移)</option>
                <option value="Gcj-02">火星坐標系(Gcj-02)</option>
                <option value="BD-09">百度坐標系(BD-09)</option>
            </select>
        </div>
        <div>
            <span>導出格式</span>
            <select name="" id="form" autofocus>
                <option value="">請選擇</option>
                <option value="geoJSON">geoJSON</option>
                <option value="kml">kml</option>
            </select>
        </div>
        <a href="javascript:void(0)" class="button button-tiny button-rounded button-primary"
            download="javascript:void(0)">確認導出</a>
        <button>x</button>
    </div>
    <a download="" style="display: none;" id="download"></a>
    <div id='map'></div>
    <script src="http://www.cnhrsm.com/Public/common/js/jquery.min.js"></script>
    <script src="http://demo.bigemap.com/static/map/js/tokml.js"></script>
    <script src="http://www.cnhrsm.com/Public/js/jiup.min.js"></script>
    <script type="text/javascript">
        // 軟件配置信息地址,軟件安裝完成之后使用本地地址,如:http://192.168.1.222:9000
        BM.Config.HTTP_URL = 'http://www.cnhrsm.com:9000';
        var map = BM.map('map', 'bigemap.amap-map', {
            center: [30.66, 104.001],
            zoom: 15,
            zoomControl: true,
            attributionControl: false,
            preferCanvas: true, //適用于數據量大時 地圖反應速度加快
        });
        var btns = document.querySelectorAll('#ceng a');
        var geo
        $('#ceng').on('click', 'a', function () {
            $('#ceng a').removeClass('button-primary');
            $(this).addClass('button-primary');
            var type = $(this).data('map');
            var crs = type === 'baidu' ? BM.CRS.Baidu : BM.CRS.EPSG3857;
            geo && geo.remove(), geo = null;
            map.remove();
            map = BM.map('map', 'bigemap.{id}'.replace('{id}', $(this).data('type')), {
                crs,
                center: [30.66, 104.001],
                zoom: 15,
                preferCanvas: true,
                zoomControl: true
            });

            if (cacheData) {
                geo = BM.geoJSON(cacheData, {
                    style: function (feature) {}
                }).bindPopup(function (layer) {
                    return `<div><h4>${layer.feature.properties.name}</h4>
             <p>${layer.feature.properties.description}</p></div>`
                }).addTo(map);
                map.fitBounds(geo.getBounds());
            }
        });
        var blob, href, geo, cacheData, geo_copy;
        var bdcj = {
                features: [],
                type: "FeatureCollection"
            },
            cjbd = {
                features: [],
                type: "FeatureCollection"
            };
        var filename;
        var ccdata
        $('#upload').on('change', function () {
            var file = this.files[0];
            var extension = file.name.split('.');
            filename = extension[0];
            extension = extension.pop();
            if (extension !== 'kml' && extension !== 'json'&&extension !== 'geojson') {
                alert('只能是KML或json格式');
                return;
            }
            var reader = new FileReader();
            reader.readAsText(file);
            reader.onload = function () {
                var dom, geojsonFeature ;
                if (extension == 'kml') {
                    dom =
                        (new DOMParser()).parseFromString(this.result, 'text/xml');
                    geojsonFeature =
                        toGeoJSON.kml(dom);
                }else{
                    geojsonFeature=JSON.parse(this.result)
                }
                cacheData = geojsonFeature;

                geo && geo.remove();
                geo = BM.geoJSON(geojsonFeature, {
                    style: function (feature) {},
                }).bindPopup(function (layer) {
                    return `<div><h4>${layer.feature.properties.name}</h4>
            <p>${layer.feature.properties.description}</p></div>`
                }).addTo(map);
                map.fitBounds(geo.getBounds());
            }
        });
        $('#satellite').on('click', function () { //顯示上傳
            $('#upload').click();
        });
        $('#export').click(function () {
            $('#checkExport').show();
        })
        $('#checkExport>button').click(function () {
            $('#from').val('');
            $('#to').val('');
            $('#form').val('');
            $('#checkExport').hide();
        })
        $('#checkExport>a').click(function () {

            let from = $('#from').val(); //從
            let to = $('#to').val(); //到
            let form = $('#form').val(); //格式
            if (from && to && form && geo) {
                let fn
                if (from == to) {
                    fn = (lat, lng) => {
                        return [lat, lng]
                    }
                    transform(fn);
                } else {
                    if (from == 'WGS84') {
                        if (to == 'Gcj-02') {
                            fn = wgs84togcj02;
                            transform(fn);
                        } else {
                            fn = (lat, lng) => {
                                return gcj02tobd09(...wgs84togcj02(lat, lng))
                            }
                            transform(fn);
                        }
                    } else if (from == 'Gcj-02') {
                        if (to == 'WGS84') {
                            fn = gcj02towgs84
                            transform(fn);
                        } else {
                            fn = gcj02tobd09
                            transform(fn);
                        }
                    } else {
                        if (to == 'WGS84') {
                            fn = (lat, lng) => {
                                return gcj02towgs84(...bd09togcj02(lat, lng))
                            }
                            transform(fn);
                        } else {
                            fn = bd09togcj02
                            transform(fn);
                        }
                    }
                }

                $('#checkExport>button').click(); //清空選項

                if (form == 'kml') {

                    var blob = new Blob([tokml(geo1.toGeoJSON())]);
                    var href = URL.createObjectURL(blob);
                    $('#download').prop('href', href);
                    $('#download').prop('download', `${filename}.kml`);
                    document.querySelector('#download').click();
                } else {
                    var blob = new Blob([JSON.stringify(geo1.toGeoJSON())]);
                    var href = URL.createObjectURL(blob);
                    $('#download').prop('href', href);
                    $('#download').prop('download', `${filename}.geojson`);
                    document.querySelector('#download').click();
                }
            } else {
                alert('巧婦難為無米之炊哦,把數據和選項整好再點唄')
            }
        })

        function transform(fn) {
            geo1 = BM.geoJSON(cacheData, {
                coordsToLatLng(feature, index) {
                    let latlng = fn(feature[1], feature[0]);
                    return BM.latLng(latlng[0], latlng[1]);
                }
            })
        }

    </script>
</body>

</html>                                                
主站蜘蛛池模板: 威海实木家具-威海定制家具-威海家具-威海至佳百隆家具有限公司 威海木箱,威海木托盘,威海免熏蒸包装箱-威海耀晟木制品有限公司 | 配重铁砂|合金钢丸|山东铁砂|济南嘉日金属制品有限公司 | 潲水回收-成都山河环境卫生管理有限公司 | 明康食品有限公司 -方集馓子 亨特小麻花 | 泡酒配方大全-泡药酒专业的网站-泡酒之家 | 粮食加工设备_玉米_大米_面粉_燕麦_豆类杂粮加工设备-华豫万通 | 首页--南京俊全科技有限公司,环保监测无人机,大疆无人机,农用无人机,植保无人机,巡检无人机,无人机环境监测仪,消防,无人机,航拍测绘,固定翼无人机,无人机电力巡检,四旋翼无人机 | 乌兰察布市集宁牧田饲料科技有限公司-乌兰察布奶牛饲料|饲料原料加工|精品羊料 | 膜结构车棚厂家-张拉膜景观棚-汽车充电桩停车棚-嘉兴铭邦膜结构公司 | 普利塞HS穿刺活检针-巴德穿刺活检针-美创爱琅Argon活检针同轴针-山东瑞玺源 | 铝合金热处理设备_天然气铝棒加热炉_QPQ热处理设备-浙江长兴天源炉业科技有限公司 | 树脂门|卫浴门|医院门|医院专用门|卫生间门—湖南航天康达树脂门 | 深圳心理咨询-专业心理咨询服务平台「专家免费在线」-深圳从心开始心理O2O | 液晶拼接屏_三星46寸/55寸/LG液晶拼接屏_深圳拼接墙厂家_电视大屏幕液晶拼接_高清工业级液晶监视器 | 英格索兰隔膜泵_ARO气动隔膜泵_英格索兰隔膜泵配件【原厂正品】连续五年无投诉_英格索兰隔膜泵代理-苏州瑞晟茂环保设备有限公司 印刷公司,北京印刷厂,宣传画册手册印刷厂-和智印彩页设计 | 亚洲一区日韩一区欧美一区a,中文字幕乱妇无码AV在线,欧美日韩免费在线观看,国产精品一区二区三区免费,日韩精品免费一线在线观看,日韩一本在线,国产呦精品一区二区三区下载,国产日韩精品一区二区在线观看,欧美日韩高清一区二区三区,日韩在线免费观看视频,欧美日韩一区在线观看 | 廊坊纳科新材料技术有限公司--纳科新材料技术有限公司|廊坊纳科新材料|纳科新材料技术 | 机锋网-畅享科技品质生活,尽在机锋网 | 无石棉纤维增强水泥板厂家_水泥纤维装饰板_河北埃尔佳建材科技有限公司 | 以物联网技术为核心专注于智能安防领域物联网服务的高新技术企业-北京欣智恒科技股份有限公司(官网) | 中深世纪广告公司 深圳标志设计,深圳logo设计公司,包装设计公司,深圳商标设计,深圳画册设计公司 中商信息网-商务数据网-中文商务数据网 | 连接器-连接线-连接器厂家-鑫鹏博20年高品质连接器生产厂家 | 射频导纳物位开关|雷达液位计|安全光栅光幕传感器|音叉料位开关|两级跑偏开关|双向拉绳开关|纵向撕裂保护装置-山东卓信机械有限公司 | 宣城眼科医院-全飞秒激光治近视-专注眼科二十二年 | 欧美日韩人妻精品一区二区三区_欧美成人精品欧美一级乱黄_亚洲欧美日韩高清一区二区三区_国产一级做a爰片久久毛片_日韩一级视频在线观看播放_精品一区二区三区免费毛片爱_完整观看高清秒播国内外精品资源 | 康明斯柴油发电机厂家-康明斯发电机(深圳)有限公司 | 太原石膏基自流平,太原轻质抹灰石膏,太原腻子粉,太原抗裂砂浆-太原乔贝建筑材料有限公司 | 锌钢护栏,铁艺护栏,围墙护栏,锌钢围墙护栏,铁艺围墙护栏-互润金属丝网厂 | 液压提升设备,液压顶升装置,钢内筒提升设备,储罐液压顶升_沧州鼎恒液压机械制造有限公司 | 温州网络公司_网站建设_网络营销策划_阿里淘宝店铺服务-温州聚欣网络科技有限公司 | 体育馆木地板厂家_篮球木地板价格_舞台木地板品牌-欧氏地板 | 黄山市惠康膳食管理服务有限公司 - 官网首页 | 苏州涂附磨具厂家-陶瓷磨具-树脂磨具批发-苏州磨料磨具-苏州远东砂轮有限公司 | 上海网站建设-上海网站制作-网站设计-上海做网站公司-SEO优化推广-咏熠软件 | 长沙广告设计公司|长沙广告制作|湖南户外广告制作|商业美陈就找湖南盛翔文化传媒有限公司老品牌高品质 | 文件管理系统-文件管理软件-文档管理系统-文档管理软件-档案管理系统-档案管理软件 - 致得软件 | 陕西筱润智能科技有限公司 干部人事智能档案柜 智能密集架 智能档案柜 部队选层文件智能柜 智能枪弹柜 财务智能档案柜 边防武警智能密集架 医院智能档案柜 部队选层文件智能柜智能枪弹柜 学校医院文件柜 企事业单位公检法智能文件柜 生产厂家-筱润智能科技有限公司 RFID射频智能密集架 全自动智能选层档案柜 智能密保柜 枪柜部队营房营具床桌椅办公家具 办公用品档案盒设备货架 全自动智能选层柜生产厂家-筱润智能科技有限公司 | 中港物流|香港专线|香港物流|中港运输|中港货运|深圳理想物流公司|4006899888 | 消防排烟风机|3C排烟风机|正压送风机|高温排烟风机|柜式排烟风机-山东锦松环境设备有限公司 | 南京三维动画制作公司,企业视频制作,视频拍摄,FLASH动画设计,宣传片拍摄,广告片制作 | 微米环境-餐厨/厨余/果蔬垃圾处理设备厂家-大型成套设备解决方案 |