JavaScript:Google map mapOptions?

时间:2014-12-31 08:46:19

标签: javascript jquery google-maps

我试图弄清楚如何在我的代码中将KM转换为Google地图中的Miles。

基本上我使用Google地图显示两个位置之间的距离和时间,一切正常,但我遇到的问题是它以KM显示距离,而不是以英里为单位。

是否有任何额外的mapOptions可以用来获取以英里为单位的距离?

这是我的全部代码:

http://jsfiddle.net/1on2yumf/1/

问题在于它显示了jsfiddle中的英里距离,但它显示了以公里为单位的距离 IN MY PAGE 这是我经历过的最奇怪的事情!

我的代码与上面jsfiddle中显示的代码相同。

整个代码:

<script>
    (function () {


        var directionsService = new google.maps.DirectionsService(),
            directionsDisplay = new google.maps.DirectionsRenderer(),
            createMap = function (start) {
                var travel = {
                        origin : (start.coords)? new google.maps.LatLng(start.lat, start.lng) : start.address,
                        destination : "<?php echo $CUpostCode; ?>",
                        travelMode : google.maps.DirectionsTravelMode.DRIVING
                        // Exchanging DRIVING to WALKING above can prove quite amusing :-)
                    },


                    mapOptions = {
                        zoom: 2,
                        // Default view: downtown Stockholm
                        center : new google.maps.LatLng(59.3325215, 18.0643818),
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                          };

                map = new google.maps.Map(document.getElementById("map"), mapOptions);
                directionsDisplay.setMap(map);
                directionsDisplay.setPanel(document.getElementById("map-directions"));
                directionsService.route(travel, function(result, status) {
                    if (status === google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(result);
                    }
                });
            };

            // Check for geolocation support    
            if (navigator.geolocation) {



                window.onload = (function (position) {
                        // Success!
                        createMap({
                            coords : true,
                            //lat : position.coords.latitude,
                            //lng : position.coords.longitude


                            lat : <?php echo $curLat; ?>,
                            lng : <?php echo $curLon; ?>
                        });
                    }, 
                    function () {
                        // Gelocation fallback: Defaults to Stockholm, Sweden
                        createMap({
                            coords : true,
                            //lat : position.coords.latitude,
                            //lng : position.coords.longitude


                            lat : <?php echo $curLat; ?>,
                            lng : <?php echo $curLon; ?>
                        });
                    }
                );
            }
            else {
                // No geolocation fallback: Defaults to Lisbon, Portugal
                createMap({
                            coords : true,
                            //lat : position.coords.latitude,
                            //lng : position.coords.longitude


                            lat : <?php echo $curLat; ?>,
                            lng : <?php echo $curLon; ?>
                });




            }
    })();
</script> 

并在标题中显示:

<script src="http://maps.google.se/maps/api/js?sensor=false"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我建议明确定义指标

只需在此代码中添加一行unitSystem: google.maps.UnitSystem.METRIC,如下所示:

var travel = {
               origin : (start.coords)? new google.maps.LatLng(start.lat, start.lng) : start.address,
               destination : "<?php echo $CUpostCode; ?>",
               travelMode : google.maps.DirectionsTravelMode.DRIVING,
               unitSystem: google.maps.UnitSystem.IMPERIAL
               // Exchanging DRIVING to WALKING above can prove quite amusing :-)
},