-1

PHPを使用して、GETを使用してカスタムマーカーを追加しようとしています。ifステートメントの内部にうまく入ることができ、マップが読み込まれますが、これはマーカーを追加しません。Javascriptに精通していません。ドキュメントを使用して、必要なことを実行しています。

その中autolocategmap.jsには、マップを初期化し、ジオロケーションを使用してユーザーを見つけるためのJavascriptが含まれているだけで、うまく機能します。唯一の問題は、ロードや更新などでマーカーが表示されないことです。この追加を追加できるかどうかさえわかりません。を含めるだけで少しのスクリプト<script>custom marker</script>、どんな情報でも大いに感謝します。

     <?php
    /* Include header and config and set variable*/
    require_once('config.inc.php');
    require_once($rootdir . $dirsubfolder . 'navbar.php');
    $route = $_GET['route'];
?>

<?php
/* User wants to retrieve their route */
if ((isset($route)) && (strcmp($route, "sunauto") == 0)) { 
?>
<script src="js/autolocategmap.js"></script>
<script>
    addMarker('56.742111','-111.481753','Stop 3', 'Arrives at: 6:00am');
</script>
<?php
}
?>

autolocategmap.js:

  /**
  * Basic Map
  */

$(document).ready(function(){

 var map = new GMaps({
    div: '#gmap',
   lat: 56.744901,
   lng: -111.473049,
    zoom: 16,
    zoomControl : true,
    zoomControlOpt: {
        style : 'SMALL',
        position: 'TOP_LEFT'
    },
    panControl : false,
  });


    GMaps.geolocate({
  success: function(position) {
    map.setCenter(position.coords.latitude, position.coords.longitude);
  },
  error: function(error) {
    alert('Geolocation failed: '+error.message);
  },
  not_supported: function() {
    alert("Your browser does not support geolocation");
  }
});

$(window).resize(function () {
   var h = $(window).height(),
   offsetTop = 150; // Calculate the top offset

   $('#gmap').css('height', (h - offsetTop));
   }).resize();
});

function addMarker(lat,lng,title,window){
   map.addMarker({
         lat: lat,
         lng: lng,
         title: title,
         infoWindow: window

      });
}
4

1 に答える 1

0
function show_map() {
    var myOptions = {
        zoom: 10,
        center: new google.maps.LatLng(51.477118, -0.000732),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map"), myOptions);
    var checkCoords = new Array();
    checkCoords[0] = addMarker(51.477118, -0.000732, 'Royal Observatory, Greenwich, London', map);
    checkCoords[1] = addMarker(38.92126, -77.066442, 'US Naval Observatory, Washington, DC', map);
    checkCoords[2] = addMarker(48.853499, 2.348090, 'Notre Dame Cathedral, Paris', map);
}

function addMarker(lat, lng, title, map) {
    var marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lng),
        title: title
    });
    marker.setMap(map);
    return (lat + ',' + lng);
}

show_map();

OK、それをjsファイルに使用します。これはまっすぐなJavaScriptであり、jQueryはありませんが、必要な処理を実行します。その後、心ゆくまでそれで遊ぶことができます。

複数のマーカーについて。あらゆるソースからのロードを通じて処理できる方法はたくさんあります。

たぶん、phpがjavascriptが読み込んでループスルーできるjsonフィードを作成するのが良いでしょう。

于 2013-03-03T18:14:40.657 に答える