0

私は Android で Leaflet を使用しています。Leaflet で GeoJSON を使用したいです。

リーフレットの公式サイトでは、FeatureCollection をシームレスに使用できると言っています

これを頼りにLeafletでGeoJSONを使おうとしたのですがエラーになってしまいました..

私のエラーは「Uncaught Error: Invalid GeoJSON object. at file:///android_asset/www/leaflet.js:8」です

ここに私のGeoJSON

{
    "features": [
        {
            "geometry": {
                "coordinates": [
                    [
                        [
                            32.54132554492192,
                            38.23922491639042
                        ],
                        [
                            32.54681870898355,
                            38.161522193191885
                        ],
                        [
                            32.75967881640627,
                            38.16476146212179
                        ],
                        [
                            32.68826768359334,
                            38.24030353694492
                        ],
                        [
                            32.54132554492192,
                            38.23922491639042
                        ]
                    ]
                ],
                "type": "Polygon"
            },
            "properties": {
                "name": "shapeId",
                "value": "1"
            },
            "type": "Feature"
        },
        {
            "geometry": {
                "coordinates": [
                    [
                        [
                            32.21585557421817,
                            38.209017044734495
                        ],
                        [
                            32.19937608203057,
                            38.11723776214526
                        ],
                        [
                            32.37927720507808,
                            38.123720089271345
                        ],
                        [
                            32.32571885546793,
                            38.232752857036594
                        ],
                        [
                            32.21585557421817,
                            38.209017044734495
                        ]
                    ]
                ],
                "type": "Polygon"
            },
            "properties": {
                "name": "shapeId",
                "value": "2"
            },
            "type": "Feature"
        },
        {
            "geometry": {
                "coordinates": [
                    [
                        [
                            32.55505845507735,
                            38.11507685855403
                        ],
                        [
                            32.37103745898429,
                            38.07616966143842
                        ],
                        [
                            32.3943834062496,
                            37.97015072378485
                        ],
                        [
                            32.677281355468274,
                            37.99721094465765
                        ],
                        [
                            32.55505845507735,
                            38.11507685855403
                        ]
                    ]
                ],
                "type": "Polygon"
            },
            "properties": {
                "name": "shapeId",
                "value": "3"
            },
            "type": "Feature"
        },
        {
            "geometry": {
                "coordinates": [
                    32.28452012499983,
                    37.872651327798025
                ],
                "type": "Point"
            },
            "properties": {
                "name": "shapeId",
                "value": "234"
            },
            "type": "Feature"
        },
        {
            "geometry": {
                "coordinates": [
                    32.25980088671844,
                    37.77719365533954
                ],
                "type": "Point"
            },
            "properties": {
                "name": "shapeId",
                "value": "235"
            },
            "type": "Feature"
        }
    ],
    "type": "FeatureCollection"
}

ここここで確認したところ、JSONについては問題ありません..

Android側では、このコマンドを使用しています

 mAppView.loadUrl("javascript:send('"+tmp+"')"); //tmp is my string which is converted from json

JavaScript側

function send(geojsonFeature)
{
alert(geojsonFeature);

L.geoJson(geojsonFeature).addTo(map);

}

私のエラーは「Uncaught Error: Invalid GeoJSON object. at file:///android_asset/www/leaflet.js:8」です

そしてそれは leaflet.jsです

FeatureCollection の代わりに Feature だけを追加しようとすると、エラーは発生しません。

たとえば、このように FeatureCollection なしで tmp を設定すると、エラーが表示されません。

tmp = {
    "type": "Feature",
    "properties": {
        "name": "Coors Field",
        "amenity": "Baseball Stadium",
        "popupContent": "This is where the Rockies play!"
    },
    "geometry": {
        "type": "Point",
        "coordinates": [-104.99404, 39.75621]
    }
};

読んでくれてありがとう..何か提案はありますか?

4

1 に答える 1

1

JavaScript関数から一重引用符を削除してみてください:)

于 2013-10-16T09:51:06.043 に答える