0

私は OpenLayers を初めて使用します。作成中のマップの構成ファイルを作成する最善の方法を見つけようとしています。

たとえば、次のスタイルでマップを作成しています。

    var defaultStyle = new OpenLayers.Style(
                        {
                            pointRadius: 10,
                            fillColor: "yellow",
                            strokeColor:"#0500bd", 
                            strokeWidth:2,
                            fillOpacity:0.4,
                            labelXOffset: "${xOffset}",
                            labelYOffset: "${yOffset}",
                            labelAlign: "${align}"
                        });

ソースコードを変更する必要はなく、構成ファイルだけを変更する必要があるため、構成ファイルにpointRadiusandを含めたいと思います。fillColor

JS ファイルを作成しましょうか。次の内容の config.js:

      var config = {
           map:{
               style: {
                   pointRadius: 10,
                   fillColor: "yellow"
               },
           },
      };

そして、スタイルを作成する他の JS では、次のことを行います。

    var defaultStyle = new OpenLayers.Style(
    {
        pointRadius: config.map.style.pointRadius,
            fillColor: config.map.style.fillColor,
        strokeColor:"#0500bd", 
        strokeWidth:2,
        fillOpacity:0.4,
                    labelXOffset: "${xOffset}",
            labelYOffset: "${yOffset}",
        labelAlign: "${align}"
    });

何が推奨されますか?

4

2 に答える 2

0

私はこのようなことをします:

var config = {
  default_map_style: {
    pointRadius: 10,
    fillColor: 'yellow'
  }
};

そして、それを 1 つずつ使用する代わりに、次のようにその場で使用したい追加のプロパティを使用して、デフォルトのマップ スタイル オブジェクトを拡張します。

var defaultStyle = new OpenLayers.Style(
  $.extend({}, config.default_map_style, {
    strokeColor: '#0500bd'
  }
);

上記ではjQuery.extendを使用していますが、jQuery を使用したくない場合は、 UnderscoreまたはLo-dashで extend の別の実装を見つけることができます。オブジェクトを変更したくないため、extend の最初のパラメーターとして新しいオブジェクトを渡すことが重要であることに注意してくださいdefault_map_style

于 2013-09-09T19:07:37.003 に答える