0

meteor アプリケーションにマップを表示するテンプレートがあります。このテンプレートは、次の 2 つの目的で使用されます。

  • アプリの検索結果を地図上に表示する
  • ユーザーが特定の会場を選択すると、その会場の個々の場所が表示されます

現在、私のコードは次のとおりです(このテンプレートに関する他の機能やヘルパーはありません):

Template.map.rendered = function() {
if(!map)
    var map = new Course_map('#map');

Deps.autorun(function(){

    if (Session.get("current_place")){
        var places = Places.find(Session.get("current_place")).fetch();
    }
    else{
        var places_cursor =  get_searched_places();
        if (places_cursor){
            var places = places_cursor[0].fetch();
            var places_id = _.pluck(places,'_id');

            //Remove the markers that are no longer in the places_id array
            map.remove_markers(places_id);
        }
    }

    if(places){
        // Add all the marker in places
        for(var i = 0, places_length = places.length; i < places_length; i ++){
            map.add_marker(places[i]);
        }
        // Recenter the map to focus on the marker area
        map.calc_bounds();
    }
});
};

私の地図テンプレート:

<template name="map">
<div id="map" class='google-map'>
</div>

ユーザーが Session.get("current_place") で場所を選択したかどうかに応じて、場所変数にさまざまな情報をロードします。

私はそのデザインがあまり好きではなく、私がやろうとしていることを行うためのより良い方法を見つけることができると思います. 何か提案はありますか ?

4

1 に答える 1