Pregunta

Estoy creando mi propio mapa de estilo usando Google Maps JS API. Quería agregar la funcionalidad de instrucciones para mapear, seguí el tutorial oficial (Por debajo Mostrando las direcciones Título), pero la ruta final no aparece ...

Depusé mi código y encontré, que directionsservice.route Devuelve la función Google.maps.DirectionsStatus.ok y directionsdisplay.setDirections (resultado) Realmente se llama sin error JS ... por lo que las direcciones se calculan con éxito pero no se muestran en mi mapa. A intentó desactivar el estilo de mapa especial, pero incluso en el estilo de mapa predeterminado no aparece. ¿Alguna idea de dónde podría estar el problema?

Ok, algún código ...:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAB2gbXmG... ...mNs66iPr8&amp;sensor=false&amp;callback=directions_init"></script>

    <script type="text/javascript">
        var map;
        var zoom = 11;
        var directionsDisplay;
        var directionsService;

        function gmap_init(){
            var styleArray = [ /*here is style but even if its commented its not working*/];

            var alterMapStyle = new google.maps.StyledMapType(styleArray, {name: "ALTER style"});


            var latlng = new google.maps.LatLng(/*lat, lng*/);
            var myOptions = {
              zoom: zoom,
              center: latlng,
              mapTypeId: google.maps.MapTypeId.ROADMAP,
              mapTypeControl: false,
              panControl: false,
              zoomControl: false,
              scaleControl: false,
              streetViewControl: false
            };
            map = new google.maps.Map(document.getElementById("gmap"), myOptions);

            map.mapTypes.set('ALTER_style', alterMapStyle);
            map.setMapTypeId('ALTER_style');


        }

        function directions_init(){

            directionsService = new google.maps.DirectionsService();
            directionsDisplay = new google.maps.DirectionsRenderer();
            directionsDisplay.setMap(map);

            display_route();

        }

        function display_route(){
            var request = {
                origin: 'Place A',
                destination:'Place B',
                travelMode: google.maps.TravelMode.DRIVING
              };

          directionsService.route(request, function(result, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                //program got here without error
                directionsDisplay.setDirections(result);
            }
          });

        }
¿Fue útil?

Solución

No estoy seguro de si es la fuente de sus problemas, pero vale la pena una toma ... desde la entrada de su script

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyAB2gbXmG... ...mNs66iPr8&amp;sensor=false&amp;callback=directions_init"></script> 

Supongo que la función DIRECTIONS_INIT se llama después de que se haya descargado el script API, que probablemente sea antes del evento de Onload de Page, por lo que su objeto de mapa no se ha iniciado y es nulo. Así que prácticamente estás llamando

directionsDisplay.setMap(null);

Intente llamar a las instrucciones_init desde gMAP_init o en cualquier evento que se active después de la carga.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top