Tabulator를 사용해 보았습니다.

AM 송신소 맵을 만들어 보았습니다. 의 json을 Tabulator로 표로 해 보았습니다.

로컬 파일에서 gist의 raw 데이터를 읽으면 CORS의 에러가 나오기 때문에 Tabulator의 ajax는 사용하지 않고, 일단 jqueury로 데이터를 취득하고 나서, Tabulator에 건네주도록 해 보았습니다.
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>AM DX LIST</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    <link href="https://unpkg.com/[email protected]/dist/css/tabulator.min.css" rel="stylesheet">
    <script type="text/javascript" src="https://unpkg.com/[email protected]/dist/js/tabulator.min.js"></script>
    <script>
        function init() {
            $.getJSON("https://gist.githubusercontent.com/yamori813/16065bbff4473e8ec3430570fcf7da7f/raw/radio.json", null, function(data,status){
    //取得成功したら実行する処理
            var tableData = data.radio;
            var table = new Tabulator("#example-table", {
            data: tableData,
            columns: [
            {
                title: "略称",
                field: "name"
            },
            {
                title: "会社",
                field: "corporation"
            },
            {
                title: "コールサイン",
                field: "callsign"
            },
            {
                title: "周波数",
                field: "frequency"
            },
            {
                title: "出力",
                field: "power"
            },
        ]
    });
    });
};

    </script>
</head>
<body onload="init()">
<div id="example-table"></div>
</body>
</html>

주파수별로 정렬할 수 있는 것이 편리합니다. 여러 필드로 정렬하려면 ctrl 또는 shift 키를 눌러 클릭합니다.



조금 보기 쉽게 해 보았다.
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>AM DX LIST</title>
    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
    <link href="https://unpkg.com/[email protected]/dist/css/tabulator.min.css" rel="stylesheet">
    <script type="text/javascript" src="https://unpkg.com/[email protected]/dist/js/tabulator.min.js"></script>
    <script>
function customFilter(data, filterParams){
return 1; 
}
        function init() {
            var kw = function(cell) {
                return cell.getValue() / 1000;
            }
            $.getJSON("https://gist.githubusercontent.com/yamori813/16065bbff4473e8ec3430570fcf7da7f/raw/radio.json", null, function(data,status){
    //取得成功したら実行する処理
            var tableData = data.radio;
            var table = new Tabulator("#example-table", {
                rowClick:function(e, row){
                    var array = row.getData();
                    window.open("https://www.google.com/maps?t=k&q=" + array.latitude + "," + array.longitude);
                },
                data: tableData,
                columns: [
                {
                    title: "略称",
                    field: "name",
                    sorter:"string", headerSort:false
                },
                {
                    title: "会社",
                    field: "corporation",
                    sorter:"string", headerSort:false
                },
                {
                    title: "コールサイン",
                    field: "callsign",
                    sorter: function(a, b, aRow, bRow, column, dir, sorterParams){
                        var astr = a.charAt(3) + a.charAt(2);
                        var bstr = b.charAt(3) + b.charAt(2);
                        return astr > bstr;
                    }
                },
                {
                    title: "周波数(kHz)",
                    field: "frequency",
                    align: "right"
                },
                {
                    title: "出力(kW)",
                    field: "power",
                    formatter: kw,
                    align: "right"
                },
            ]
        });
    });
};

    </script>
</head>
<body onload="init()">
<div id="example-table"></div>
</body>
</html>



콜사인의 소트는 조금 응해 보았습니다. :)

클릭하면 google map의 항공 사진이 열립니다. 일본 전국 온라인 안테나 순회가 가능합니다.



HTML도 gist에 두어 브라우저에서 직접 볼 수 있도록 했습니다.

좋은 웹페이지 즐겨찾기