Как получить координаты булавки / маркера, используя ESRI и JavaScript? - PullRequest
1 голос
/ 07 января 2020

У меня есть этот JavaScript код, который позволяет мне добавить булавку / маркер на карту. Теперь я хочу получить координаты выпавшей булавки. Как я могу это сделать? Пожалуйста, смотрите код ниже:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
    <title>APPLICATION</title>

    <link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/themes/light/main.css" />
    <script src="https://js.arcgis.com/4.12/"></script>

    <style>
        html,
        body,
        #viewDiv {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <script>
        require([
            "esri/widgets/Sketch",
            "esri/Map",
            "esri/layers/GraphicsLayer",
            "esri/views/MapView"
        ], function (Sketch, Map, GraphicsLayer, MapView) {
            const layer = new GraphicsLayer();

            const map = new Map({
                basemap: "streets",
                layers: [layer]
            });

            const view = new MapView({
                container: "viewDiv",
                map: map,
                zoom: 5,
                center: [90, 45]
            });

            const sketch = new Sketch({
                layer: layer,
                view: view,
                availableCreateTools: ["point"]
            });

            view.ui.add(sketch, "top-right");

            sketch.on('create', function (evt) {
                console.info(evt.graphic.geometry);
            });
        });
    </script>
</head>

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

</html>

Пожалуйста, помогите. Я могу видеть карту и бросить булавку, но мне также нужно получить координаты этой булавки.

1 Ответ

2 голосов
/ 08 января 2020

Вы можете получить доступ к координатам из графика c (штифт) геометрии:

Здесь вы можете получить доступ к ним после создания эскиза:

sketch.on('create', function (evt) {
  console.info(evt.graphic.geometry);
  var x = evt.graphic.geometry.x;
  var y = evt.graphic.geometry.y;
});

Здесь вы получите доступ к ним из графический слой, в котором хранятся эскизы:

layer.graphics.forEach(function(graphic) {
  var x = graphic.geometry.x;
  var y = graphic.geometry.y;
});
...