Как я могу создать GeoJson для фолио Python - PullRequest
0 голосов
/ 11 мая 2018

Может кто-нибудь помочь мне со следующим GeoJSON , я пытаюсь работать с folium Python Library , пытаюсь построить все **LineStrings**, но я хочу это с отдельные цвета через id_ , поэтому я дал опцию id в моем geoJson, и я хочу fillcolor с опцией id , этот id имеет несколько координатных точек,и в нем более 81 уникальных идентификаторов , что делает кратным linestring, и я хочу разделить эти linestrings with colors

Мой первый вопрос:

  1. Возможно ли сделать то, что я пытаюсь сделать с помощью Folium Python
  2. , если да, пожалуйста, помогите с моим файлом GeoJson, чтобы исправить это

Я хочу сделать это изображение: enter image description here

cords = list(zip(filteredData.lat.tolist(), filteredData.lon.tolist()))
id_= list (zip(filteredData.id.tolist())) 
subVoyage

line = {
    'type': 'Feature',
    'geometry': {
        'type': 'LineString',
        'coordinates': cords,
        'ids': id_
    },
    'properties':{
        "color": 'black',
        "stroke": "red",
        "stroke-opacity": 0.4,
        "stroke-width": 5,
        "fillcolor" : id_,

    }
}

m1 = folium.Map(location=[36.862317, -76.3151], zoom_start=6)

folium.GeoJson(data, style_function=lambda x: {
        'color' : x['properties']['color'],
        'weight' : x['properties']['stroke-width'],
        'opacity': 1,
        'fillColor' : x['properties']['fillcolor'],
        }).add_to(m1)
m1

1 Ответ

0 голосов
/ 12 мая 2018

Это возможно, так как я сделал демонстрацию для вашего дела в блокноте (см. Код ниже). Кажется, ваша проблема связана со структурой вашего GeoJSON.

import folium

lines = {"type":"FeatureCollection","features":[{"type":"Feature","properties":{"color": "#0000ff", "stroke-width": 1},"geometry":{"type":"LineString","coordinates":[[-1.64794921875,46.46813299215554],[-0.94482421875,47.724544549099676],[-0.263671875,47.97521412341618]]}},{"type":"Feature","properties":{"color": "#00ff00", "stroke-width": 1},"geometry":{"type":"LineString","coordinates":[[-0.263671875,47.97521412341618],[1.58203125,48.67645370777654],[1.8896484375,48.32703913063476],[2.3291015625,48.37084770238366]]}},{"type":"Feature","properties":{"color": "#ff0000", "stroke-width": 1},"geometry":{"type":"LineString","coordinates":[[2.3291015625,48.37084770238366],[2.548828125,48.60385760823255],[3.01025390625,48.66194284607006],[3.251953125,48.42920055556841],[3.5815429687499996,48.531157010976706],[3.779296875,48.32703913063476]]}}]}


m1 = folium.Map(location=[45, 1], zoom_start=6)

style_function = lambda x: {
    'color' : x['properties']['color'],
    'weight' : x['properties']['stroke-width']
}

folium.GeoJson(lines, style_function=style_function).add_to(m1)

m1

Вы можете увидеть иллюстрированный результат (в центре Франции из-за GeoJSON, который я использовал)

Folium

...