1

ユーザーが自分の KML/KMZ ファイルを開いたり、Here Maps のモバイル html5 バージョンにロードしたり、API に含まれるレイヤー ボタンを介して kml レイヤーをアクティブ化または非アクティブ化できるようにすることが可能かどうか疑問に思っていました。

4

1 に答える 1

0

現時点ではそれが可能ではないようです。addLayer ()メソッドを使用して、以下に示すようにオーバーレイを追加できますが、KMLを読み取るように設定されていません。KMLのロードを検討している場合は、この例http://developer.here.net/apiexplorer/examples/api-for-js/data-に示すように、JavaScript用のMapsAPIを使用する方がよいでしょう。visual / display-data-on-map.html

または、基になるライブラリからKMLサポートを公開するjHEREライブラリを調べることもできます。

Mobile HMTL5ライブラリはポリラインの実装を提供していないため、マップにKMLルートを追加することは困難ですが、JavaScriptライブラリを使用してマーカーのセットのデータをロードし、を使用してマーカーを追加することは可能です。addPOI()メソッドですが、これはかなり複雑なようです。

ボタンの押下に基づく作業オーバーレイは次のとおりです。

<!doctype html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=100">
    <!-- Definitions of mobile-friendly documents e.g. for BlackBerry: -->
    <meta name="HandheldFriendly" content="True">
    <!-- Definitions of mobile-friendly documents for Microsoft Browser: -->
    <meta name="MobileOptimized" content="width">
    <!-- iOS viewport definitions: -->
    <!--meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"-->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <!-- disable BlackBerry UI events -->
    <meta name="touch-event-mode" value="native">
    <meta name="cursor-event-mode" value="native">
    <!-- disables address sniffing -->
    <meta name="format-detection" content="telephone=no"/>
    <meta name="format-detection" content="address=no"/>

    <link rel="stylesheet" href="http://api.maps.nokia.com/mobile/latest/lib/mh5.css" type="text/css">
    <link rel="stylesheet" href="http://api.maps.nokia.com/mobile/latest/lib/colors.css" type="text/css">
    <style>
        .mh5_ProgressBar {
            width: 300px;
            left: 20px;
            position: relative;
        }
        .mh5_Map {
            height: auto;
            -webkit-box-flex: 1;
            -ms-flex:         1 0 auto;
            box-flex:         1;
        }
    </style>
</head>
<body>
        <div id="mapContainer" style="height: 480px; width: 320px;"></div>

        <script src="http://api.maps.nokia.com/mobile/1.0.0/lib/mh5.js"></script>

    <script type="text/javascript">
           nokia.mh5.assetsPath = "../../lib/";
        nokia.mh5.appId = "demo_wwzrmoloHAFVvyW";
        nokia.mh5.appCode = "Vgl_08RQWnjJo92Lw1F_uQ";

        var progressObject,
            page = new nokia.mh5.ui.Page({
                children: ["controls",  "map"],
                layout: {
                    type: nokia.mh5.ui.RowLayout
                },
                visible: true,
                controls: {
                    control: nokia.mh5.ui.Container,
                    children: [ "show" ],
                    layout: {
                        type: nokia.mh5.ui.ColumnLayout
                    },

                    show: {
                        control: nokia.mh5.ui.Button,
                        text: "Show",
                        disabled: false,
                        onClick: function() {
                            page.map.addLayer(oldBerlin, "OLD_BERLIN");
                        }
                    }
                },

                map: {
                    control: nokia.mh5.components.Map,
                    center: {
                        longitude: 13.405,
                        latitude: 52.515
                    },
                    //enable either box or zoom
                    zoom: 13,
                    schema: "normal.day"
                }
            });

        document.body.appendChild(page.root);



      var oldBerlin = function(column,row,z){
        var zoom = 0;

        while (z > 1){
                zoom++;
                z = z /2;
        }

        if (((zoom == 12) &&  ( row != 1343  || column != 2200))||
            ((zoom ==13) &&  ( row < 2686 || column < 4400 || row >   2687 || column > 4401 ))||
            ((zoom == 14) &&  ( row <  5372 || column < 8800 || row >   5375 || column > 8803  ))||
            ((zoom  == 15)  &&  ( row  < 10744 || column < 17601 || row >   10750 || column > 17607 ))) {
                return "http://developer.here.net/apiexplorer/examples/res/old_berlin_overlay_tiles/blank.png";
        }

        return "http://developer.here.net/apiexplorer/examples/res/old_berlin_overlay_tiles/"+ zoom + "/"+ row+ "/" + column + ".png";
     };


    </script>

</body>
</html>
于 2012-12-17T15:58:10.650 に答える