2013-03-03 9 views
-1

我想用PHP來添加自定義標記使用GET。我可以進入if語句,並加載地圖,但這不會添加標記,我對JavaScript不熟悉。我只是使用文檔來完成我需要做的事情。我試圖使用PHP來添加標記到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 

     }); 
} 
+0

只是這件事本身並沒有給很多工作。你能否顯示autolocategmap.js中創建實際地圖的代碼。 – Rafe 2013-03-03 17:33:54

+0

@Rafe你去 – Datsik 2013-03-03 17:42:45

+0

把添加標記放入js中的一個函數中。然後用coords和文本調用該函數。 不確定,但問題可能是外部腳本不知道'map'實際上是什麼。 – Rafe 2013-03-03 17:54:01

回答

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創建一個json feed,javascript可以讀入然後循環。

+0

它仍然沒有顯示,請檢查我的代碼在原來的帖子更新版本謝謝。 – Datsik 2013-03-03 18:32:36

+0

你想添加多少個標記?它可能會更簡單的做到讓PHP實際創建javascript文件並以文本/ javascript內容類型標題發送它的舊式方式。 – Rafe 2013-03-03 18:35:45

+1

很多.. 20+,我想也許只是在js文件中做這些,但我仍然希望能夠使用該功能,而不必每次都寫出整個東西 – Datsik 2013-03-03 18:39:28

相關問題