ホ−ム » 基本サンプル » 2点間の距離を取得する

2点間の距離を取得する

実行結果

次の例では、クリックした地図の2点間の距離を表示します。

Your borwser is not supporting object tag. Please use one of the latest browsers.
Go to ./apisample/utility/getDistance.html

ソースコードと解説

2点間の距離を取得するには、ZDC.getLatLonToLatLonDistance()を利用します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<script src="http://api.its-mo.com/cgi/loader.cgi?key=JSZ752c40ded32d&ver=2.0&api=zdcmap.js,shape.js,geo.js,userwidget.js&enc=EUC&force=1" type="text/javascript"></script>
<style type="text/css">
</style>
<script type="text/javascript">
//<![CDATA[
    var pl = null, flg = false, points = [];

    function loadMap() {
        var lat = 35.6778614, lon = 139.7703167;
        var map = new ZDC.Map(
            document.getElementById('ZMap'),
            {
                latlon: new ZDC.LatLon(lat, lon),
                zoom: 6
            }
        );
        map.pointerPositionOn();

        /* スケールバーを作成 */
        var scalebar = new ZDC.ScaleBar();

        /* スケールバーを追加 */
        map.addWidget(scalebar);

        /* 結果表示用スタティックユーザウィジットを作成 */
        var info = new ZDC.StaticUserWidget(
            new ZDC.TL(10, 10),
            {
                html: '<div id="ret" style="background-color: #FFFFFF; border:1px ' + 
                    'solid #777777; width:100px; height:18px; padding: 5px">' +
                    '2点をクリック</div>'
            }
        );

        /* 結果表示用スタティックユーザウィジットを追加 */
        map.addWidget(info);
        info.open();

        /* 地図をクリックしたときの動作 */
        ZDC.addListener(map, ZDC.MAP_CLICK, function() {
            if (pl) {
                this.removeWidget(pl);
            }
            var click = this.getPointerPosition();

            if (!flg) {
                points[0] = click;
            } else {
                points[1] = click;
            }
            flg = !flg;

            if (points.length == 1) {
                return;
            }

            /* 距離を取得 */
            var dist = ZDC.getLatLonToLatLonDistance(points[0], points[1]);

            document.getElementById('ret').innerHTML = dist + ' m';

            /* 確認用の図形を地図に表示 */
            pl = new ZDC.Polyline(points);
            this.addWidget(pl);
        });
    };
//]]>
</script>
</head>

<body onload="loadMap();">

<div id="ZMap" style="border:1px solid #777777; width:500px; height:300px; top:0px; left:20px; position:absolute;"></div>
</body>
</html>