Привет, я разрабатываю приложение с Flask и картами Leaflet. На карте есть объекты геометрии. С помощью инструмента рисования пользователь dr aws многоугольные фигуры на карте и все данные объекта (то есть 'id'), которые попадают внутрь фигуры, должны отображаться в таблице html. Когда нарисована фигура, выполняется запрос POST. Хотя я могу распечатать данные в трассировке и увидеть их на вкладке Devtools Network Preview, я все еще не могу отобразить эти данные в html.
. Вот мой код JS, который отправляет запрос Post после Форма нарисована. Выходные данные дают координаты вершины фигуры.
mymap.on('pm:create', e => {
var map_data = e["layer"]["_latlngs"][0];
console.log(map_data);
$.ajax({
type: "POST",
contentType: "application/json",
url: "/",
traditional: "true",
data: JSON.stringify({map_data}),
});
});
Затем я назначаю переменную с этими координатами и распечатываю их в app.py. Используя различные функции геоинструментов, я также финансирую Stuf внутри Polygon:
shape_coord = request.get_json() //gets shape coordinates
if shape_coord:
filter_markers = marker_within_polygon(markers, shape_coord) //function finds markers within shape
filter_lines = lines_within_polygon(lines, shape_coord)//function finds lines within shape
print(shape_coord)// OK
print(filter_markers, filter_lines)//OK. prints out stuff inside polygon
А вот мой jinja2:
<tbody id="table_body">
{% for mk in filter_markers%}
<tr>
{% for ln in filter_lines %}
<th>{{ ln }}</th>
<th>{{ mk }}</th>
{% endfor %}
</tr>
{% endfor %}
</tbody>
Я пытался использовать успешный обратный вызов в Ajax, как это, но помимо необходимых данных он вставляет в таблицу всю HTML -текстовую разметку:
mymap.on('pm:create', e => {
var map_data = e["layer"]["_latlngs"][0];
console.log(map_data);
$.ajax({
type: "POST",
contentType: "application/json",
url: "/",
traditional: "true",
data: JSON.stringify({map_data}),
success: function (data) {
$("#table_body").html(data);
});
});
Как я могу получить только мои данные маркера и строки, которые были отрисованы?