Лучший способ добавить собственный многоугольник на карту фолио в любом месте? - PullRequest
0 голосов
/ 12 апреля 2020

Я новичок в Folium, но хорошо справляюсь с основами. Однако у меня есть один немного абстрактный вопрос о том, как лучше всего что-то сделать:

У меня есть свои собственные формы маркеров многоугольника (пример ниже в geo json - это коктейльный бокал с буквой J для Джеймсона на нем! ), и я хочу иметь возможность вызывать эту форму и наносить ее на карту фолиума в любом месте (очень важно) и масштабе (менее важно, поскольку я могу иметь разные файлы для разных масштабов в качестве обходного пути).

На данный момент у меня это как geo json, но, очевидно, geo json указывает фактическое местоположение на земле (и, следовательно, размер).

Итак, мне нужна абстрактная форма в сохраненном формате что я могу сказать фолиуму «разместить» на карте там, где я хочу (что может быть где угодно на земле!), и в идеале любой размер (но местоположение наиболее важно).

Поэтому, что является самым простым и простым способ сделать это? Какой-то другой формат данных формы, который я предполагаю?

Мой пример формы в geo json:

{
"type": "FeatureCollection",
"name": "cocktail",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "Layer": "0", "SubClasses": null, "ExtendedEntity": null, "Linetype": null, "EntityHandle": null, "Text": null }, "geometry": { "type": "LineString", "coordinates": [ [ 3.095, 7.56494, 0.0 ], [ 3.63938, 6.88867, 0.0 ], [ 3.63656, 6.30507, 0.0 ], [ 3.30826, 6.1844, 0.0 ], [ 4.11638, 6.176, 0.0 ], [ 3.79368, 6.30507, 0.0 ], [ 3.78244, 6.88867, 0.0 ], [ 4.33524, 7.56494, 0.0 ], [ 3.095, 7.56494, 0.0 ] ] } },
{ "type": "Feature", "properties": { "Layer": "0", "SubClasses": null, "ExtendedEntity": null, "Linetype": null, "EntityHandle": null, "Text": null }, "geometry": { "type": "LineString", "coordinates": [ [ 3.61692, 7.16086, 0.0 ], [ 3.76004, 7.15804, 0.0 ], [ 3.76563, 7.37696, 0.0 ], [ 3.89469, 7.37696, 0.0 ], [ 3.89469, 7.41342, 0.0 ], [ 3.6225, 7.4106, 0.0 ], [ 3.62532, 7.37131, 0.0 ], [ 3.72071, 7.36849, 0.0 ], [ 3.71511, 7.20296, 0.0 ], [ 3.60851, 7.20578, 0.0 ], [ 3.61692, 7.16086, 0.0 ] ] } }
]
}

1 Ответ

1 голос
/ 13 апреля 2020

Благодаря предложению через Руслан С. Я попытался использовать функцию folium.features.CustomIcon, и это сработало:

icon_url = "https://yourwebsitelinkorlocationoficon.com/cocktail.png"

icon = folium.features.CustomIcon(icon_url,icon_size=(40, 40))

folium.Marker([p1_lat, p1_lon], icon=icon).add_to(testmap)
...