我正在尝试使用PHP将标记添加到Javascript(谷歌地图),但它没有按照我的方式使用它

时间:2013-03-03 17:28:00

标签: php javascript google-maps google-maps-api-3

我正在尝试使用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

      });
}

1 个答案:

答案 0 :(得分: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 feed。

相关问题