如何在 Django 模板中显示 geemap.Map() 的实例

发布于 2025-01-09 15:36:45 字数 971 浏览 1 评论 0原文

我正在使用 Django 和 geemap 模块,其中我试图制作一个可以在地图上显示卫星数据的应用程序,并且地图也应该是交互式的,因为应该有来自前端的双向数据流(Django模板)到后端(python 脚本),反之亦然。

到目前为止,我只知道如何在 Jupyter Notebook 单元或 Colab 上显示 geemap.Map() 的实例(我们只需要为其编写变量的名称。)。但是,我不知道如何在 Django 模板中显示 geemap.Map() 的实例。

当我使用以下方法时,它只是将实例对象打印为字典,而不是将其解释为地图并显示相同的内容。

我的views.py 的代码

from django.http import HttpResponse
from django.shortcuts import render
import geemap as gm
#import pandas as pd

def params(request):
   g_map = gm.Map()
   return render(request, "PlotMap/params.html", { "m" : g_map })

模板的代码(params.html)

<!DOCTYPE html>
{% load static %}
<html>
    <head>
        <meta charset="utf-8">
        <title>map</title>
        
    </head>
    <body>
       {{ m }}
    </body>
</html>

我得到的输出如下。 输出

如果有人可以帮助我,那就太谢谢了。

I am working with Django and geemap modules, in which I am trying to make an app that can display satellite data on the map and the map should also be interactive as in there should be a bidirectional flow of data from the front-end(Django template) to back-end(python script) and vice-versa.

As of now I only know how to display the instance of geemap.Map() on Jupyter Notebook cell or on Colab(we just need to write the name of the variable for it.). But, I have no idea about how can i display the instance of geemap.Map() in Django Template.

When I use the following method it just prints the instance object as a dictionary instead of interpreting it as a map and displaying the same.

The code for my views.py

from django.http import HttpResponse
from django.shortcuts import render
import geemap as gm
#import pandas as pd

def params(request):
   g_map = gm.Map()
   return render(request, "PlotMap/params.html", { "m" : g_map })

The code for the template(params.html)

<!DOCTYPE html>
{% load static %}
<html>
    <head>
        <meta charset="utf-8">
        <title>map</title>
        
    </head>
    <body>
       {{ m }}
    </body>
</html>

The output that I get is as follows. output

If someone can help me out, It would mean a lot Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟酉 2025-01-16 15:36:45

您可以使用 geemap.foliumap.Map() 或 folium.Map()

html 模板

<!DOCTYPE html>
{% load static %}
<html>
    <head>
        <meta charset="utf-8">
        <title>map</title>
        {{ map.header.render|safe }}

    </head>
    <body>
       <div class="map">
         {{ map.html.render|safe }}
       </div>
    </body>
    <script> {{ map.script.render | safe }}</script>
</html>

代码 后端代码 (views.py)

import folium

import geemap.foliumap as geemap

class map(TemplateView): 
    template_name = 'map.html'

    def get_context_data(request):

        figure = folium.Figure()

        Map = geemap.Map(plugin_Draw = True, 
                         Draw_export = True)

        Map.add_to(figure)

        figure.render()

        return {"map": figure}

urls.py 代码

urlpatterns = [
    path('', views.map.as_view(), name = 'map'),
]

You can use geemap.foliumap.Map() or folium.Map()

Code for html template

<!DOCTYPE html>
{% load static %}
<html>
    <head>
        <meta charset="utf-8">
        <title>map</title>
        {{ map.header.render|safe }}

    </head>
    <body>
       <div class="map">
         {{ map.html.render|safe }}
       </div>
    </body>
    <script> {{ map.script.render | safe }}</script>
</html>

Code for backend (views.py)

import folium

import geemap.foliumap as geemap

class map(TemplateView): 
    template_name = 'map.html'

    def get_context_data(request):

        figure = folium.Figure()

        Map = geemap.Map(plugin_Draw = True, 
                         Draw_export = True)

        Map.add_to(figure)

        figure.render()

        return {"map": figure}

Code for urls.py

urlpatterns = [
    path('', views.map.as_view(), name = 'map'),
]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文