Я пытаюсь повторить аналогичную функциональность в Картах Google, где вы щелкаете правой кнопкой мыши, и это дает возможность указать направление к / от этой точки. Моя борьба заключается во взаимодействии с информационным окном и возвращении широты / долготы назад.
Слушатель создает штраф в информационном окне. но я не могу понять, как передать lat / longs обратно в javascript (в качестве источника или места назначения), чтобы затем использовать его в службе указаний. В конечном итоге у меня будет второй маркер, который заполнит другое значение в источнике / пункте назначения. Как только массив получит два значения, я позвоню в службу указателей.
Все примеры, которые я видел, требовали некоторой формы ручного ввода для определения второй части адреса.
Я все еще новичок в этом, поэтому, пожалуйста, будьте спокойны со мной; Я изо всех сил старался предоставить наиболее урезанный пример кода, чтобы продемонстрировать мою проблему.
var mapCanvas = "map-canvas",
map,
infowindow = new google.maps.InfoWindow(),
LocationArr = [],
o;
google.maps.event.addDomListener(window, "load", function(){
map = new google.maps.Map(document.getElementById(mapCanvas), {zoom: 13,center: {lat: 53.4723272,lng: -2.2935022}});
var geocoder = new google.maps.Geocoder;
google.maps.event.addListener(map, "click", function(o) {
LocationArr.push(o.latLng);
var a = new google.maps.Marker({
position: o.latLng,
map: map,
});
var content = "<input type='button' name='DirFrom' value='Directions from here' onclick='DirFromHere()' id='Dir_From'>"
+ "<input type='button' name='DirTo' value='Directions to here' onclick='DirToHere()' id='Dir_To'>"
infowindow.setContent(content);
infowindow.open(map, a);
});
});
function DirFromHere(LocationArr){
console.log(LocationArr.length);
}
function DirToHere(LocationArr){
LocationArr=[];
}
html, body {
height: 100%;
width: 100%;
}
#map-canvas {
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
}
<html>
<head>
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="map-canvas"></div>
<script src="https://maps.googleapis.com/maps/api/js?libraries=places"></script>
<script src="js/aqrouting.js"></script>
</body>
</html>