如何从具有多个点的 geoJson 在地图上添加标记(传单)

Vic*_*rte 5 javascript leaflet

我正在尝试使用带有点的 geoJson 在地图上添加一些标记,我正在遵循传单文档,但它仍然说:

\n\n
\n

错误:GeoJSON 对象无效。
\n throw new Error(\'无效的 GeoJSON 对象。\');

\n
\n\n

我的 GeoJson:

\n\n
var meta1nJson={\n  "type": "FeatureCollection",\n  "features": [\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -38.3613558,\n          -8.8044875\n        ]\n      },\n      "properties": {\n        "Ordem": "193",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": "Petrol\xc3\xa2ndia",\n        "Estado": "PE",\n        "Nome da Comunidade": "Agrovila 4"\n      }\n    },\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -38.3445892,\n          -8.7940031\n        ]\n      },\n      "properties": {\n        "Ordem": "194",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": "Petrol\xc3\xa2ndia / Floresta",\n        "Estado": "PE",\n        "Nome da Comunidade": "Agrovila 5"\n      }\n    },\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -37.8521847,\n          -8.6774657\n        ]\n      },\n      "properties": {\n        "Ordem": "195",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": "Inaj\xc3\x83\xc2\xa1/Ibimirim",\n        "Estado": "PE",\n        "Nome da Comunidade": "Ind\xc3\xadgena Kambiw\xc3\x83\xc2\xa1 - Baxa da Alexandra"\n      }\n    },\n    {\n      "type": "Feature",\n      "geometry": {\n        "type": "Point",\n        "coordinates": [\n          -37.9229577,\n          -8.645232\n        ]\n      },\n      "properties": {\n        "Ordem": "196",\n        "Eixo": "Leste",\n        "Meta": "1L",\n        "Municipio": "Inaj\xc3\x83\xc2\xa1",\n        "Estado": "PE",\n        "Nome da Comunidade": "Ind\xc3\xadgena Kambiw\xc3\x83\xc2\xa1 -  Barrac\xc3\x83\xc2\xa3o"\n      }\n    }\n  ]\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及如何尝试渲染标记:

\n\n
var layerComunidades1N = L.geoJson(meta1nJson).addTo(map);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我找不到我做错了什么,根据传单文档,如果我不传递选项 pointToLayer 它应该呈现默认标记,我错了吗?

\n

sfl*_*che 3

我没有发现你的 geojson 有任何问题。我将您的 geojson 复制到geojson.io中,它工作正常

看起来您确实调用GeoJSON不正确(上面的示例显示了对 的调用geoJson),但这并不能解释您收到的错误...

无论如何,这里有一个有效的 jsfiddle,它将您的 geojson 可视化为传单地图上的标记

这是相关的代码(带有一个基础层以实现良好的测量):

var map = L.map('map', {
    center: [-9, -38],
    zoom: 7
});

L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {       
    id: 'examples.map-20v6611k'
}).addTo(map);

new L.GeoJSON(meta1nJson).addTo(map);
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助。