arcgis.js toMap(),toScreen() 方法的使用

本文通过一个示例详细介绍了 ArcGIS.js 中的 toMap() 和 toScreen() 方法的使用。toMap() 方法用于将浏览器坐标转换为地图坐标,而 toScreen() 方法则将地图坐标转换为浏览器坐标。示例中展示了如何在地图加载后正确使用这两个方法,并将地图上的点转换到页面元素的位置。
摘要由CSDN通过智能技术生成

arcgis.js中有 toMap(),toScreen()两个方法。
toMap()是将一个浏览器坐标(x,y)转换成地图坐标(经纬度)
toScreen()是将地图上的坐标转换成浏览器中的坐标
注意是浏览器中的坐标
toScreen()方法的使用重点就是我们需要先将点point添加到view容器中,再从中取出来,进行转换,否则会出现undefined的结果,这与地图中的一些设置有关。
下面上代码:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>toMap()&toScreen()</title>
    <style>
        html,
        body {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
        
        #viewDiv {
            height: 60%;
            width: 40%;
        }
    </style>
    <!-- 导入arcgis -->
    <link rel="stylesheet" href="https://js.arcgis.com/4.22/esri/themes/light/main.css" />
    <script src="https://js.arcgis.com/4.22/"></script>
</head>

<body>

    <div id="viewDiv" style="border: 1px red solid;"></div>
    <div id="location" style="position: absolute;z-index: 1;background:red;">
        1231234
    </div>


    <script>
        console.log("view.toMap(),view.toScreen()方法使用")
            //使用arcgis.js
        require([
                "esri/Map",
                "esri/views/MapView",
                "esri/Graphic",
            ],
            (Map, MapView, Graphic) => {
                let centerPoint = [116, 39];
                //底层
                const map = new Map({
                    basemap: "osm"
                });
                const view = new MapView({
                    container: "viewDiv",
                    map: map,
                    zoom: 15,
                    center: [116, 39]
                });

                let point = {
                    type: "point",
                    longitude: 116,
                    latitude: 39,
                    // spatialReference: {
                    //     wkid: 4326 
                    // }
                };
                let pointSymbol = {
                    type: "simple-marker",
                    color: [255, 0, 0],
                    style: "circle",
                    size: 10,
                };
                let pointGraphic = new Graphic({
                    geometry: point,
                    symbol: pointSymbol
                });
                view.graphics.add(pointGraphic);


                //要在view加载完毕后调用toScreen和toMap,否则就是null
                view.watch("extent", function(evt) {
                    let item = view.graphics.getItemAt(0);
                    //地图上的经纬度 >> 转成 >>屏幕上的坐标点
                    console.log("item.geometry:", item.geometry)
                    let screenPoint = view.toScreen(item.geometry);
                    console.log("toScreen:", screenPoint)

                    let domDiv = document.getElementById("location");
                    domDiv.style.top = Number(screenPoint.y) + "px";
                    domDiv.style.left = Number(screenPoint.x) + "px";



                    //屏幕上的坐标点 >>转成>> 地图上的经纬度
                    let testPoint = {
                        x: 384,
                        y: 200.5
                    };
                    let mapPoint = view.toMap(testPoint);
                    console.log("toMap:", mapPoint)


                })

            })
    </script>
</body>

</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
arcgis.js 是一个用于构建地图和地理空间分析应用程序的JavaScript API。它提供了大量的功能和工具,可以帮助开发人员在网页上展示地图数据、进行空间查询、分析和可视化等操作。 要在arcgis.js中打开弹出框,首先需要创建一个地图对象,并将其显示在网页上的某个容器中。然后,可以使用弹出层对象来创建和管理弹出框。弹出层是arcgis.js中用于显示弹出框的一个组件,可以在地图上任意位置创建一个弹出框,并为其设置内容、样式和交互行为等属性。 要打开一个弹出框,可以使用弹出层对象的open方法,并指定需要显示在弹出框中的内容。通过指定弹出框的位置、大小和样式等属性,可以对弹出框进行定制化设置。同时,可以为弹出框设置交互行为,如添加关闭按钮、支持拖动等。 例如,以下是使用arcgis.js创建一个地图对象,并在地图上打开一个弹出框的示例代码: ``` <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"> <title>ArcGIS JavaScript API - Open Popup</title> <link rel="stylesheet" href="https://js.arcgis.com/4.19/esri/themes/light/main.css"> <script src="https://js.arcgis.com/4.19/"></script> <style> #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } </style> <script> require([ "esri/Map", "esri/views/MapView", "esri/widgets/Popup" ], function(Map, MapView, Popup) { var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", map: map, center: [-99.14, 36.48], zoom: 9 }); var popupContent = { title: "Hello!", content: "This is a sample popup." }; var popup = new Popup({ content: popupContent }); view.popup = popup; view.popup.open({ location: view.center, content: popupContent }); }); </script> </head> <body> <div id="viewDiv"></div> </body> </html> ``` 在上述示例代码中,创建了一个地图对象和地图视图,并指定在网页上的某个容器(id为viewDiv)中显示地图。然后,创建了一个弹出框对象,并为其设置了标题和内容。最后,通过调用view.popup.open方法,在地图视图的中心位置打开了一个弹出框,并指定了弹出框的位置和内容。 以上就是使用arcgis.js打开弹出框的简要说明。arcgis.js提供了丰富的API和组件,可以根据实际需求定制化设置弹出框的样式和交互行为,实现更加丰富和灵活的地图应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值