Google Maps API - 路线指示路线服务

时间:2013-03-19 10:11:11

标签: javascript maps

我正在尝试向我的定向Google地图添加其他标记(自定义图标),但我似乎无法在initialize()函数之外添加这些标记。

我需要在initialize()函数之外添加它们,因为我想根据路径改变图标。这是ADD EXTRA MARKERS TEST,我遇到了麻烦。所有其余的脚本都完美无缺。

非常感谢您的任何帮助。

到目前为止

代码:

       var directionDisplay;
       var directionsService = new google.maps.DirectionsService();
       var stepDisplay;



        function initialize() {
            var latlng = new google.maps.LatLng( <? echo $lat; ?> , <? echo $lon; ?> );
            var rendererOptions = {draggable: true};
            directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
            var myOptions = {zoom: 14,center: latlng,mapTypeId: google.maps.MapTypeId.ROADMAP,mapTypeControl: false};
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            directionsDisplay.setMap(map);  
        directionsDisplay.setPanel(document.getElementById("directionsPanel"));
                 }

// calcRoute

        function calcRoute() {
            var travelMode = 'DRIVING';
            var start = $("#routeStart").val();
            var via = $("#routeVia2").val();
            var end = $("#routeVia").val();
            var waypoints = [];
            if (via != '') {waypoints.push({location: via,stopover: true});
            }
            var request = {
                origin: start,
                destination: end,
                waypoints: waypoints,
                unitSystem: google.maps.UnitSystem.IMPERIAL,
                travelMode: google.maps.DirectionsTravelMode[travelMode]
            };

//显示路径和通过LATLNG到PHP文件进行进一步处理

    directionsService.route(request, function(response, status) {
    if (status == google.maps.DirectionsStatus.OK) {            
    directionsDisplay.setDirections(response);
    var myRoute = response.routes[0];
    var txtDir = '';
    for (var i=0; i<myRoute.legs[0].steps.length; i++) {
    txtDir += myRoute.legs[0].steps[i].path+"";                             
    }
var strLAT = "" + txtDir;

//将数据发送到网址PHP文件

     var xmlHttp = getXMLHttp();
     xmlHttp.onreadystatechange = function() {
     if (xmlHttp.readyState == 4) {
     HandleResponse(xmlHttp.responseText);
     }}                     
     xmlHttp.open("POST",'MYPHPFILE',true);
     xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
     xmlHttp.send("LATLON="+strLAT);

//警告测试以确保PHP处理数据正确

    function HandleResponse(response) {
            document.getElementById('ResponseDiv').innerHTML = response;
            alert($('#ResponseDiv').text());
        }

添加额外标记测试

      var wxlatlng = new google.maps.LatLng( 52 , -1 );
            var marker = new google.maps.Marker({ 
            position: wxlatlng, 
            map: map, 
            icon: "http://nwsgeo.com/demo/images/pins/road-closed.jpg", 
            title: "test icon", 

     });

//错误信息

     }else{
     if (status == 'ZERO_RESULTS') {
     alert('No route could be found between the origin and destination.');
     }else if(status == 'INVALID_REQUEST') {
     alert('The DirectionsRequest provided was invalid.');
     }else{
     alert("There was an unknown error in your request. Requeststatus: nn" + status);
     }}});}

0 个答案:

没有答案