arcgis api for js 加载百度地图

本文探讨了使用ArcGIS API加载百度地图时遇到的坐标系问题,详细介绍了如何通过自定义图层来实现百度地图的加载,并分析了不同坐标系(如102100与4326)对于地图显示的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<html>
<head>  
   <meta charset="utf-8">
   <link rel="stylesheet" href="https://js.arcgis.com/4.5/esri/css/main.css">
   <script src="https://js.arcgis.com/4.5"></script>
   <style type="text/css">
    html,body,
    #viewDiv{
    padding: 0;
    margin: 0;
    width: 100%;
    height: 100%;
    }
   </style>
</head>
<body>
<script>
    require(["esri/config","dojo/_base/declare","esri/layers/BaseTileLayer","esri/geometry/SpatialReference","esri/geometry/Extent","esri/layers/support/TileInfo","esri/Map","esri/views/MapView","dojo/domReady!"],function(esriConfig,declare,BaseTileLayer,SpatialReference,Extent,TileInfo,Map,MapView){
           esriConfig.request.corsEnabledServers.push("http://online1.map.bdimg.com/");
           var BaiduTileLayer=BaseTileLayer.createSubclass({  
            properties: {
      urlTemplate: null
    },
            getTileUrl: function (level, row, col) {  
                var zoom = level - 1;  
                var offsetX = parseInt(Math.pow(2, zoom));  
                var offsetY = offsetX - 1;  
                var numX = col - offsetX, numY = (-row) + offsetY ;  
                var num = (col + row) % 8 + 1;  
                return this.urlTemplate.replace("{level}", level).replace("{col}",numX).replace("{row}", numY);  
            }  
        }); 
          
           var map = new Map();
           var view = new MapView({
            container:"viewDiv",
            map:map,
            zoom:6,
            center:[65,23]
           });
           var baidulayer = new BaiduTileLayer({

            urlTemplate:"http://online1.map.bdimg.com/tile/?qt=tile&x={col}&y={row}&z={level}&styles=pl&scaler=1&udt=20171128" ,

spatialReference : new SpatialReference({ wkid: 102100 })

           });
 
           map.add(baidulayer);
           
           view.on("click",function(evt){
              alert(evt.mapPoint.longitude+":"+evt.mapPoint.latitude);
           });
    });


</script>


<div id="viewDiv"></div>
</body>

</html>

有一个问题,就是坐标的问题,加载的地图的坐标系为102100,一般用4326比较多,而改用4326不满足view的要求,所以,在作为底图时会有一些问题。

然而,天地图也是102100坐标系,但是中国的经纬度确是正确的???

所以,百度地图即便能加载显示出来,但是,由于坐标系的问题,依旧不能使用,而天地图可以使用的!

这也从侧面说明了,地理信息的数据基础是具有统一的坐标系,否则无法集成使用!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值