Можно установить LineString в Geo Django
Я хочу нарисовать строку линий на карте листа. Я задаю данные строки линии на модели, но она рисуется вне карты. Не могу нарисовать карту по точным координатам
Просмотр: Импорт JSON из файла JSON
class ImportGisView(LoginRequiredMixin, View):
template_name = "maps/import_gis.html"
form_class = GISImportForm
def post(self, request, *args, **kwargs):
project = get_object_or_404(Project, slug=kwargs["slug"])
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
file = form.cleaned_data['file']
gis_file = file.read()
decoded_gis_file = gis_file.decode('utf8')
gis_data = ast.literal_eval(decoded_gis_file)
for features in gis_data['features']:
geometry = features['geometry']
type = geometry['type']
if type == 'LineString':
line = GEOSGeometry(json.dumps(features['geometry']))
line.transform(4326)
projectmap = ProjectMap(
project=project,
line=line,
)
projectmap.save()
context = {
"project": project,
"form": form,
}
return render(request, self.template_name, context)
Модель:
class ProjectMap(models.Model):
project = models.ForeignKey(
Project, on_delete=models.SET_NULL, null=True
)
line = models.LineStringField(null=True, blank=True)
Admin:
from django.contrib import admin
from leaflet.admin import LeafletGeoAdmin
from taiga.maps import models
@admin.register(models.ProjectMap)
class ProjectMapAdmin(LeafletGeoAdmin):
list_display = ('project','line')
Line Data JSON:
{
"type":"FeatureCollection",
"features":[
{
"type":"Feature",
"geometry":{
"type":"LineString",
"coordinates":[
[
92.15286395100009,
21.15305210400004
],
[
92.15272080000005,
21.153023500000074
],
[
92.15221290000005,
21.15301990000006
]
]
},
"properties":{
"NAME":"test 1"
}
},
{
"type":"Feature",
"geometry":{
"type":"LineString",
"coordinates":[
[
92.15125660000007,
21.15309780000007
],
[
92.15169850000007,
21.152142600000047
],
[
92.15222090000003,
21.15283560000006
],
]
},
"properties":{
"NAME":"Test 2"
}
}
]
}
Показывает линию вне карты, но мои координаты идеальны. Как я могу решить эту проблему?
