Я извлек количество раз, когда страна появляется в объекте (показано внизу).Моя проблема в том, что мне нужно, чтобы информация о геокоде соответствовала названиям стран + количество раз, которое они появляются, чтобы я мог отобразить фактический результат по фактической стране на моей карте.
Итак, из объекта нижерезультирующий объект из функции mapToProp будет
Germany:3,
United Kingdom: 1
Но мне нужно что-то вроде ниже.Поскольку этот формат mapbox, по-видимому, ожидает, что объекты Geojson будут.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-77.034084142948,
38.909671288923
]
},
"properties": {
"name":'Germany',
"amount": 3
}
},
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-77.034084142948,
38.909671288923
]
},
"properties": {
"name":'United Kingdom',
"amount": 4
}
}
]
}
Получение названий стран + время их появления
function mapToProp(data, prop) {
return data
.reduce((res, item) => Object
.assign(res, {
[item[prop]]: 1 + (res[item[prop]] || 0)
}), Object.create(null))
;
}
Результат, возвращаемый из геокодера (это та страна, в которой появляются некоторые конкретные названия)
var data = [
{
bbox: [
5.866003, 47.270461, 15.041428, 55.0845576
],
center: [
10, 51
],
geometry: {
coordinates:[
10, 51
],
type: "Point"
}
}, {
id: "country.10743216036480410",
place_name: "Germany",
place_type: ["country"],
properties: {
short_code: "de",
wikidata: "Q183"
},
relevance: 1,
text: "Germany",
type: "Feature"
}, {
bbox: [
5.866003, 47.270461, 15.041428, 55.0845576
],
center: [
10, 51
],
geometry: {
type: "Point",
coordinates:[
10, 51
]
},
id: "country.10743216036480410",
place_name: "Germany",
place_type: ["country"],
properties: {
short_code: "de",
wikidata: "Q183"
},
relevance: 1,
text: "Germany",
type: "Feature"
}, {
bbox: [
5.866003, 47.270461, 15.041428, 55.0845576
],
center: [
10, 51
],
geometry: {
type: "Point",
coordinates:[
10, 51
]
},
id: "country.10743216036480410",
place_name: "Germany",
place_type: ["country"],
properties: {
short_code: "de",
wikidata: "Q183"
},
relevance: 1,
text: "Germany",
type: "Feature"
}, {
bbox: [
-8.718659, 49.802665, 1.867399, 60.945453
],
center: [
-2, 54
],
geometry: {
type: "Point",
coordinates:[
10, 51
],
},
id: "country.8605848117814600",
place_name: "United Kingdom",
place_type: ["country"],
properties: {
short_code: "gb",
wikidata: "Q145"
},
relevance: 1,
text: "United Kingdom",
type: "Feature"
}
]