0

我在我的网站上使用这个脚本:

<script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<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 : "Warszawa, al. jerozolimskie 123",
            travelMode : google.maps.DirectionsTravelMode.DRIVING
            // Exchanging DRIVING to WALKING above can prove quite amusing :-)
        },
        mapOptions = {
            zoom: 10,
            // 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) {
    navigator.geolocation.getCurrentPosition(function (position) {
            // Success!
            createMap({
                coords : true,
                lat : position.coords.latitude,
                lng : position.coords.longitude
            });
        }, 
        function () {
            // Gelocation fallback: Defaults to Stockholm, Sweden
            createMap({
                coords : false,
                address : "Polska, Warszawa"
            });
        }
    );
            }
            else {
    // No geolocation fallback: Defaults to Lisbon, Portugal
    createMap({
        coords : false,
        address : "Polska, Warszawa"
    });
            }
    })();
</script>

我在连接计算我的位置和设定位置之间的道路距离的 Haversine 公式时遇到问题......我不需要任何地图或道路线 - 只有公里数:)

有人帮我解决这个问题吗?

非常感谢,

4

1 回答 1

0

我检查了 APi 并找到了你想要的。

方向服务.路线(

一定要设置:

单位系统:google.maps.UnitSystem.METRIC

在您的旅行变量中。

然后调用路由后,Result 是一个 DirectionsResult 对象。在那里,您将拥有一个 DirectionRoute 数组,其中包含一个带有 distance 属性的 DirectionsLeg 数组。

为你的问题获取这个应该如下工作:

var 结果 = result.rows[0].elements;

var 距离 = 结果[0].distance.text;

distance.text 返回“100 km”,而 distance.value 只会返回“100”,无论您喜欢什么。

当然,最好遍历这些数组;)(一定要检查这些,因为距离并不总是被填充,在某些情况下距离可能是未知的)

可以在此处找到有关 API 的更多信息:https ://developers.google.com/maps/documentation/javascript/directions?hl=en

PS:请务必使用 API 的实际版本 V3,生成您自己的密钥并使用它。https://developers.google.com/maps/documentation/javascript/tutorial?hl=en#api_key

于 2013-03-12T12:47:55.270 回答