php - 谷歌地图标记 : Need option for 'Get Directions'

标签 php javascript mysql google-maps map-directions

相当直接的问题。

我目前已经在我的网站上实现了谷歌地图。到目前为止,我已经能够编辑标记上显示的数据以及这些数据的样式。

我坚持最后一点。我需要能够为访问者提供点击“获取路线”的选项。我在名为“方向”的标记上有一个链接。我希望访问者能够“以某种方式”单击它并为他们提供指导。我不确定这是如何实现的。我到处都看过了。任何帮助将不胜感激。我附上了我的标记的屏幕截图。

标记/ map 的屏幕截图 http://postimg.org/image/t5v5hy7yj/

此外,在回答问题时,请将我视为到目前为止只知道执行此操作所需的基础知识的人。谢谢!

编辑*

我对其进行了编辑,以便当他们点击“方向”链接时,它会获取 Google map 搜索命令并将我从 mysql 数据库中发出的命令放入其中。他们仍然需要在现在的谷歌结果页面上再点击一次路线才能获得路线。我需要一个更直接的方法来做到这一点! =)

  downloadUrl("genxml.php", function(data) {
    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (var i = 0; i < markers.length; i++) {
      var name = markers[i].getAttribute("name");
      var type = markers[i].getAttribute("type");
      var address = markers[i].getAttribute("address");
      var city = markers[i].getAttribute("city");
      var state = markers[i].getAttribute("state");
      var zip = markers[i].getAttribute("zip");
      var phone = markers[i].getAttribute("phone");
      var url = markers[i].getAttribute("url");
      var point = new google.maps.LatLng(
          parseFloat(markers[i].getAttribute("lat")),
          parseFloat(markers[i].getAttribute("lng")));
      var html = 
      '<a href="' + url + '" target="blank">' + name + '</a>' +
      '</a><br/><br/>' + address +
      '<br>' + city + ' ' + state + ' ' + zip +
      '<br/>' + phone + 
      '<hr style="border: none; height: 1px; color: blue; background: grey;"/>' +
      '<a href="https://maps.google.com/maps?q='+ address + ' ' + city + ' ' + state + ' ' + zip + '" target="blank"><u>Directions</u></a> ' + ' <a href="#"><u>Write a Review</u></a> ' + ' <a href="#"><u>more</u></a>' +
      '<hr style="border: none; height: 1px; color: blue; background: grey;"/>' +
      '<?php echo $ads ?>';
      var icon = customIcons[type] || {};
      var marker = new google.maps.Marker({
        map: map,
        position: point,
        icon: icon.icon,
        shadow: icon.shadow
      });
      bindInfoWindow(marker, map, infoWindow, html);
    }
  });
}

function bindInfoWindow(marker, map, infoWindow, html) {
  google.maps.event.addListener(marker, 'click', function() {
    infoWindow.setContent(html);
    infoWindow.open(map, marker);
  });
}

function downloadUrl(url, callback) {
  var request = window.ActiveXObject ?
      new ActiveXObject('Microsoft.XMLHTTP') :
      new XMLHttpRequest;

  request.onreadystatechange = function() {
    if (request.readyState == 4) {
      request.onreadystatechange = doNothing;
      callback(request, request.status);
    }
  };

  request.open('GET', url, true);
  request.send(null);
}

function doNothing() {}

最佳答案

在信息窗口的 HTML 字符串中,添加调用 javascript 函数的 onclick 参数,如下所示:showDirections("+ address + ","+ city + ","+ state + ","+ ")

此链接应该可以帮助您创建显示方向的功能: https://developers.google.com/maps/documentation/javascript/examples/directions-simple

关于php - 谷歌地图标记 : Need option for 'Get Directions' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17459743/

相关文章:

php - 向表中插入数据不起作用,为什么?

javascript - clientHeight 根据 IE8 所处的模式返回不同的值

php - 加密会破坏 MySQL 查询吗?

javascript - AJAX 在提交时返回数据两次

php - 如何从变量返回查询?

javascript - Vue : How to check multiple string in v-show

mysql - 如何在插入值时检查两列?

php - 没有在 PHP 中删除正确的文件

php - MySQL 中名为 'like' 的表

javascript - 为什么 getScript 不能从外部脚本运行?