1
resposta

[Bug] Bug na última célula do projeto

Gente, tá rolando uma parada muito estranha justo na última célula do projeto. Quando coloco para incluir a camada "config", ela simplesmente não aparece e também some com o "Fullscreen()" e o "LayerControl()".

style_function = lambda x: {'fillColor': '#ffffff',
                            'color':'#000000',
                            'fillOpacity': 0.1,
                            'weight': 0.1}
highlight_function = lambda x: {'fillColor': '#000000',
                                'color':'#000000',
                                'fillOpacity': 0.5,
                                'weight': 0.1}

config = folium.features.GeoJson(
    estatisticas_bairros,
    style_function = style_function,
    highlight_function= highlight_function,
    tooltip = folium.features.GeoJsonTooltip(
        fields=['NM_BAIRRO', 'preco_min', 'preco_medio', 'preco_max', 'qtd_imoveis', 'area_min', 'area_max'],
        aliases=['Bairro: ', 'Preço mínimo: ', 'Preço médio: ', 'Preço máximo: ', 'Quantidade de imóveis', 'Área mínima: ', 'Área máxima: '],
        style=("background-color: white; color: #333333; font-family: arial; font-size: 12px; padding: 10px;")

    )
)

mapa_rio.add_child(config)
mapa_rio.keep_in_front(config)

mapa_rio.save('mapa_imoveis_rio.html')
mapa_rio

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeJá rodei várias vezes, incluí todo o código do "mapa_rio = folium.Map()" e sempre sai esse resultado com apenas a clusterização dos imóveis e o "Choropleth" do mapa anterior. O que devo fazer?

1 resposta

Olá Cauã, tudo bem? Espero que sim!

O mapa final realmente não tem o LayerControl(), ele não foi adicionado no código da construção da visualização. Por ser um código extenso, foi construído a partir de 3 células diferentes, portanto aqui está o código completo dessa visualização em apenas uma célula:

mapa_rio = folium.Map(location = [imoveis['Latitude'].mean(), imoveis['Longitude'].mean()],
                      zoom_start = 10,
                      tiles = 'cartodbpositron')

folium.Choropleth(geo_data = bairros_rio,
                  data= estatisticas_bairros,
                  columns = ['NM_BAIRRO', 'preco_medio'],
                  key_on = 'feature.properties.NM_BAIRRO',
                  fill_color = 'YlOrRd',
                  nan_fill_color = 'white',
                  bins = 10,
                  highlight = True,
                  legend_name = 'Média do valor do imóvel').add_to(mapa_rio)

cluster = MarkerCluster()

imoveis.apply(
    lambda linha: folium.Marker(
        location = [linha['Latitude'],
                    linha['Longitude']],
        icon = folium.Icon(color = linha['cor'], icon = 'fa-home', prefix = 'fa'),
        popup = folium.Popup(f'''<b>Bairro</b>: {linha["Bairro"]}<br>
                                <b>Área</b>: {linha["Area"]} m²<br>
                                <b>Valor</b>: R$ {linha["Valor"]},00<br>
                                <b>Quartos</b>: {linha["Quartos"]}
                            ''',
                             max_width = 200,
                             sticky = True)
    ).add_to(cluster), axis = 1
)

cluster.add_to(mapa_rio)

Fullscreen().add_to(mapa_rio)

style_function = lambda x: {'fillColor': '#ffffff',
                            'color':'#000000',
                            'fillOpacity': 0.1,
                            'weight': 0.1}
highlight_function = lambda x: {'fillColor': '#000000',
                                'color':'#000000',
                                'fillOpacity': 0.5,
                                'weight': 0.1}

config = folium.features.GeoJson(
    estatisticas_bairros,
    style_function = style_function,
    highlight_function= highlight_function,
    tooltip = folium.features.GeoJsonTooltip(
        fields=['NM_BAIRRO', 'preco_min', 'preco_medio', 'preco_max', 'qtd_imoveis', 'area_min', 'area_max'],
        aliases=['Bairro: ', 'Preço mínimo: ', 'Preço médio: ', 'Preço máximo: ', 'Quantidade de imóveis', 'Área mínima: ', 'Área máxima: '],
        style=("background-color: white; color: #333333; font-family: arial; font-size: 12px; padding: 10px;")

    )
)

mapa_rio.add_child(config)
mapa_rio.keep_in_front(config)

mapa_rio.save('mapa_imoveis_rio.html')

O FullScreen() foi adicionado logo após a construção do cluster e depois disso foi gerada uma nova camada sobreposta chamada config, usando os métodos add_child e keep_in_front.

Se o problema persistir, estarei a disposição para ajudar. Bons estudos!