GeoJson отображается правильно, но без запрошенного цвета - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть следующий метод "ajax_geojson", который создает гео-JSON:

    geo_json = [ {"type": "Feature",
                    "properties": {
                        "id":  c_name,
                        "marker-color": "#f80530",
                        "marker-size": "medium",
                        "marker-symbol": "",
                        "popupContent":  content , 
                        }, 
                    "geometry": {
                        "type": "Point",
                        "coordinates": [lon, lat] }}
                    for c_name,content, lon,lat in zip(country_name, content, longtitude, latitude) ]     

   return JsonResponse(geo_json, safe=False)  

, javascript отображает это с помощью jQuery:

              $.ajax({
                url: '/research/ajax_geojson',
                success: function (collection) 
                {                           
                   L.geoJson(collection, {onEachFeature: onEachFeature}).addTo(map);

                   function onEachFeature(feature, layer) 
                   {
                        if (feature.properties && feature.properties.popupContent) 
                        {
                            layer.bindPopup(feature.properties.popupContent); 
                        }  
                    }                       

                }
        }); 

В то время как маркеры отображаются накарта точно соответствует запросу, цвет, кажется, не имеет никакого эффекта (# f80530 - красный)

Мой вопрос: есть ли что-то, что мне нужно добавить в javascript под layer.bindPopup?У меня сложилось впечатление, что определение цвета в geo_json должно появиться на карте.Что мне здесь не хватает?

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2019

попробуйте добавить объект "style", следующий за "geometry", в свой объект настроек geo_json:

    geo_json = [ {"type": "Feature",
                    "properties": {
                        "id":  c_name,
                        "marker-color": "#f80530",
                        "marker-size": "medium",
                        "marker-symbol": "",
                        "popupContent":  content , 
                        }, 
                    "geometry": {
                        "type": "Point",
                        "coordinates": [lon, lat] },
                    "style":{
                      //all SVG styles allowed
                      "fill":"red",
                      "stroke-width":"3",
                      "fill-opacity":0.6 }}
                    for c_name,content, lon,lat in zip(country_name, content, longtitude, latitude) ]     

   return JsonResponse(geo_json, safe=False)  
...