|
Поле HTML-документа. Получить координаты GoogleMaps. | ☑ | ||
---|---|---|---|---|
0
Bodrug
06.05.19
✎
14:34
|
Всем привет. На форме есть поле HTML документа. Как ПриНажатии в этом поле можно отловить координаты клика мыши? Текст поля прилагается:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>Polygon Arrays</title> <style> /* Always set the map height explicitly to define the size of the div * element that contains the map. */ #map { height: 100%; } /* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } </style> </head> <body> <div id="map"></div> <script> var map; var infoWindow; function initMap() { map = new google.maps.Map(document.getElementById('map'), { zoom: 14, center: {lat: 46.635717703759639, lng: 30.402132970052506}, mapTypeId: 'hybrid' }); var clickListener = map.addListener('click', showCoordinates); // Define the LatLng coordinates for the polygon. var triangleCoords = [ %PolyCoordinates% ]; // Construct the polygon. var myPolygon = new google.maps.Polygon({ paths: triangleCoords, strokeColor: '#FF0000', strokeOpacity: 0.8, strokeWeight: 3, fillColor: '#FF0000', fillOpacity: 0.35 }); myPolygon.setMap(map); // Add a listener for the click event. myPolygon.addListener('click', showArrays); infoWindow = new google.maps.InfoWindow; var drawingManager = new google.maps.drawing.DrawingManager({ drawingMode: google.maps.drawing.OverlayType.MARKER, drawingControl: true, drawingControlOptions: { position: google.maps.ControlPosition.TOP_CENTER, drawingModes: ['marker', 'circle', 'polygon', 'polyline', 'rectangle'] }, markerOptions: {icon: 'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'}, circleOptions: { fillColor: '#ffff00', fillOpacity: 1, strokeWeight: 5, clickable: false, editable: true, zIndex: 1 } }); drawingManager.setMap(map); } function showArrays(event) { // Since this polygon has only one path, we can call getPath() to return the // MVCArray of LatLngs. var vertices = this.getPath(); var contentString = '<b>My polygon</b><br>' + 'Clicked location: <br>' + event.latLng.lat() + ',' + event.latLng.lng() + '<br>'; // Iterate over the vertices. for (var i =0; i < vertices.getLength(); i++) { var xy = vertices.getAt(i); contentString += '<br>' + 'Coordinate ' + i + ':<br>' + xy.lat() + ',' + xy.lng(); } // Replace the info window's content and position. infoWindow.setContent(contentString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } function showCoordinates(event){ //this.data = event.latLng.lat() + ',' + event.latLng.lng(); this.isMultiLine = false; var contString = event.latLng.lat() + ',' + event.latLng.lng(); infoWindow.setContent(contString); infoWindow.setPosition(event.latLng); infoWindow.open(map); } </script> <script async defer src="https://maps.googleapis.com/maps/api/js?key=MyKey&libraries=drawing&callback=initMap"> </script> </body> </html> |
|||
1
sitex
naïve
06.05.19
✎
14:57
|
(0) ПриНажати может отработать быстрее чем код html и данных не будет.
|
|||
2
Bodrug
06.05.19
✎
14:59
|
(1) Логично. Можно ли тогда как-то реализовать передачу координат с карты в 1С?
|
|||
3
sitex
naïve
06.05.19
✎
15:18
|
(2) Можешь вывести на на самой карте в маркер или иное что то , и уже забирать с HTMLПоля
|
|||
4
sitex
naïve
06.05.19
✎
15:20
|
(2) Когда то сам пытался сделать что то подобное с Яндекс картами и без таймаута кода в ПриНажатии, координаты не попадали.
|
|||
5
Bodrug
06.05.19
✎
15:25
|
(4) Спасибо, попробую с таймаутом
|
|||
6
Bodrug
07.05.19
✎
09:29
|
(4) Таймаут не помог ((
Я нажатиями мыши рисую на карте Polygon или Rectangle. И у каждого есть свои методы получения координат вершин. У Polygon - метод GetPath(), а у Rectangle - GetBounds(). Тут дело в том, что при нажатии я получаю структуру, в которой есть огромное количество элементов (в т.ч. COM-объекты). Но непонятно куда копать, чтобы получить координаты, вызывав необходимые методы... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |