私は 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]
}
};
読んでくれてありがとう..何か提案はありますか?