2

むしろストレートな質問。

現在、サイトに Google マップを実装しています。これまでのところ、マーカーに表示されるデータと、そのデータのスタイルを正確に編集することができました。

私は最後の 1 つのポイントで立ち往生しています。訪問者に「道案内を見る」をクリックするオプションを提供できるようにする必要があります。「ルート案内」というマーカーにリンクがあります。訪問者がこれを「何とか」クリックして、道順を提供できるようにしたいと思います。手段や、これがどのように達成されるかはわかりません。私はいたるところを見てきました。どんな助けでも大歓迎です。マーカーのスクリーンショットを含めました。

マーカー/マップのスクリーンショットhttp://postimg.org/image/t5v5hy7yj/

また、回答するときは、これまでに必要だったことの基本しか知らない人として私を扱ってください. ありがとう!

編集*

「方向」リンクをクリックすると、Google マップの検索コマンドが取り込まれ、mysql データベースからコマンドを実行してその中に配置されるように編集しました。道順を取得するには、現在の Google 検索結果ページでもう一度道順をクリックする必要があります。これを行うには、より直接的な方法が必要です。=)

  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() {}
4

1 に答える 1