-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
}
?>

自动定位地图.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();

好的,将它用于您的 js 文件。它是直接的 javascript,没有 jQuery,但它可以满足您的需求。然后,您可以随心所欲地玩它。

至于多个标记。有很多方法可以通过从任何来源加载来处理它们。

也许一个不错的选择是让 php 创建一个 javascript 可以读取然后循环的 json 提要。

于 2013-03-03T18:14:40.657 回答