-1

GeoJson 形式のデータをヒア マップ js API に適切な方法でロードすることは可能ですか? GeoJSONでフォーマットされたmysqlからのデータを送信するためにAJAXを使用しています。kmlファイルを保存したくありません。

4

2 に答える 2

2

従来の 2.x API で直接利用できる GeoJSON パーサーはありません。独自に作成する必要があります。Google Maps API 用の外部 GeoJSONパーサー ライブラリが存在するため、Google 固有のマップ オブジェクトを同等の HERE Maps オブジェクトに置き換えるだけです。

オリジナルに基づいてポートを作成しましたが、HERE マップの構文はそのままにしておきます

GeoJSONContainerの基本的な使用法は、次のようにparseGeoJSON()メソッドを使用することです。

function extend(B, A) {
    function I() {}
    I.prototype = A.prototype;
    B.prototype = new I();
    B.prototype.constructor = B;
}

function createGeoJsonParser(){
    extend(GeoJSONContainer, nokia.maps.map.Container);
    parser = new GeoJSONContainer();

}

function parseJson(jsonObject){

    result = parser.parseGeoJSON(jsonObject);   
    if (parser.state == "finished") {
        map.objects.addAll(result);
        map.set("center", map.objects.get(0).getBoundingBox().getCenter());

        map.addListener("click" ,  function(evt) {
            var text = JSON.stringify(evt.target.properties);
            bubble = infoBubbles.addBubble(text!== undefined ? 
                       text : "properties undefined",
                 evt.target.getBoundingBox().getCenter());
        }, false);
    } else {
        console.log(result);
    }
}

リンクを参照してください:シンプルな geoJSON 解析

GeoJSONContainerContainerの拡張であるため、 addGeoJSON()を使用して geoJSON データを地図に直接追加することもできます。

var err = resultSet.addGeoJSON(jsonManager.object);
if (resultSet.state == "finished") {
    map.zoomTo(container.getBoundingBox());
    container.addListener("click" ,  function(evt) {
        infoBubbles.addBubble(evt.target.properties.Description,
         evt.target.getBoundingBox().getCenter());
    }, false);
} else {
    alert(err);
}

基本的な使用例: -ロシアの州

クラスタリングコンポーネントと同じ方法でデータ ポイントを追加してスタイルを設定することもできます。

スタイル付きの例:

もちろん無保証です。

現在の3.x API では、geojson リーダーが標準で含まれています。以下の fxxxit の回答を参照できます。

var reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();
//assuming that map already exists
map.addLayer(reader.getLayer());
于 2013-08-20T15:56:59.060 に答える
2

GeoJSON データを直接取得できる API の「新しい」バージョンがあるようです ( https://developer.here.com/documentation/maps/api_reference/H.data.geojson.Reader.html )

var reader = new H.data.geojson.Reader('/path/to/geojson/file.json');
reader.parse();
//assuming that map already exists
map.addLayer(reader.getLayer());
于 2015-06-09T03:57:09.177 に答える