在Leaflet中更改线串(json)的颜色

时间:2018-12-18 15:30:45

标签: json leaflet

问题是我在地图上只看到一种颜色(蓝色),但我想为我的堤防json文件指定特定的颜色。有人可以给我建议如何改变线串的颜色吗?

var geojson = L.geoJson(null,{
  pointToLayer: function (feature, latlng) {
    return L.circleMarker(latlng, geojsonMarkerOptions);
  }
}).addTo(map);
            var xhttp = new XMLHttpRequest();
            xhttp.open('GET', encodeURI("NA.json"));

geojson data to the layer when request is succesfull
            xhttp.onload = function() {
              if (xhttp.readyState === 4) {

                geojson.addData(JSON.parse(xhttp.responseText));
                } else {
                  alert('Request failed.  Returned status of ' + xhttp.status);
                }
            };


            xhttp.send();

json文件

  "type" : "FeatureCollection",
  "crs" : {
    "type" : "name",
    "properties" : {
      "name" : "EPSG:4326"
    }
  },
  "features" : [
    {
      "type" : "Feature",
      "id" : 122,
      "geometry" : {
        "type" : "LineString",
        "coordinates" :

1 个答案:

答案 0 :(得分:1)

使用L.GeoJSON的{​​{3}}选项。让我引用style

  

一个Function定义了documentation来设置GeoJSON线和多边形的样式,在添加数据时在内部调用。默认值是不覆盖任何默认值:

function (geoJsonFeature) {
    return {}
}

您可以通过为L.Polyline选项提供值来将颜色应用于路径(L.CircleL.Polygoncolor)。因此,您应该提供一个style回调函数,该函数返回一组选项,包括color

var geojson = L.geoJson(null,{
  pointToLayer: function (feature, latlng) {
    return L.circleMarker(latlng, geojsonMarkerOptions);
  },
  style: function(){
    return { color: 'pink' }
  }
}).addTo(map);

请注意,Path options中还有其他示例。