1

形状オプション情報を持つ文字列を取得して、Google マップ アプリケーションで形状を作成しようとしています。

文字列は、ローカルのテキスト ドキュメントから構築された配列を分割することによって作成されます。

文字列は次のように表示されます。

そのような文字列を取得して形状を作成する必要がある関数は次のようになります。

function loadDrawings(evt)
{
    var f = evt.target.files[0];

    if (!f) 
    {
        alert("Failed to load file");
    } 
    else if (!f.type.match('text.*')) 
    {
        alert(f.name + " is not a valid text file.");
    } 
    else 
    {
        var r = new FileReader();
        r.onload = function (e) 
        {
            var contents = e.target.result;
            var drawings = [];
            var drawing;
            var drawingType;
            var shape;
            var shapeOptions;

            drawings = contents.split(";");
            for (i = 0; i < drawings.length - 1; i++) {
                drawing = drawings[i].toString();
                drawingType = drawing.substr(0, drawing.indexOf('{'));
                if (drawingType == "Circle")
                {
                    shapeOptions = drawing.substr(6);                //UNIQUE TO CIRCLE
                    shape = new google.maps.Circle(shapeOptions);
                    shape.setMap(map);
                }                    
            };
        }
        r.readAsText(f);
    } 
}

私の問題は、円を作成するための上記の構文では文字列が機能しないため、shapeOptions です。ただし、文字列の内容を取得すると、次のようになります。

{center: new google.maps.LatLng(38.041872419557094, -87.6046371459961),radius:5197.017394363823,fillColor: '#000000',strokeWeight: 1,strokeColor: '#000000',map:map}

直接入力すると、形が現れます。

これが機能するには、shapeOptions に特定の変数タイプが必要ですか? 新しい google.maps. () が必要ですが、文字列から変数を作成できませんでした。ここで何か不足していますか?

どんな助けにも感謝します!

4

1 に答える 1