当前位置: 首页 > 知识库问答 >
问题:

将FeatureGroup转换为GeoJson时,传单绘图不带属性

赏高格
2023-03-14

我无法使用传单(0.7.7)/传单将我的图层属性转换为GEOJson对象的属性。抽签(最新)。我的工作流程是:

1创建地图:var map=L. map('#map',选项);

2创建FeatureGroup:features=new L.FeatureGroup()

3添加到单张地图:map.add层(功能);

4在Draw:创建的事件中,我捕获了e.layer并添加了一些属性:

var层=e.layer

层。属性={Title:'Hello'}

功能。添加层(层)

geo_features=特征。toGeoJSON()

但是,我的geo_功能在每个功能中总是有空的属性属性,我想不出来!


共有3个答案

艾照
2023-03-14

为您的L. GeoJSON调用包括功能回调onEachFeature到选项

    L.GeoJSON(featureData,{onEachFeature:function(feature,layer){

 //console.log(feature,layer);
 // do something like 

 feature.setStyle( convertLayerOptionsFromFeatureProperties( feature.properties ) );

}} )
山疏珂
2023-03-14

(一种难看的解决方法)是使用L.GeoJSON层,并使用其addData方法将绘制层的GeoJSON添加到该层中。然后抓取L.GeoJSON层的\u层对象中的最后一层。此时,图层具有有效的GeoJSON功能属性,您可以编辑:

var geojson = new L.GeoJSON().addTo(map);

var drawControl = new L.Control.Draw({
    edit: {
        featureGroup: geojson
    }
}).addTo(map);

map.on('draw:created', function (e) {

    geojson.addData(e.layer.toGeoJSON());

    var layers = geojson._layers,
        keys = Object.keys(layers),
        key = keys[keys.length - 1],
        layer = layers[key];

    layer.feature.properties = {
        'Foo': 'Bar'
    };
});
毛宏达
2023-03-14

iH8最初的回答几乎是正确的。

要指定将出现在向量层GeoJSON导出中的属性(即通过其. toGeoJSON()方法),您必须填充其feature.typefeature.properties成员:

var myVectorLayer = L.rectangle(...) // whatever

var feature = myVectorLayer.feature = myVectorLayer.feature || {};
feature.type = "Feature";
feature.properties = feature.properties || {};
feature.properties["Foo"] = "Bar";

现在myVectorLayer。toGeoJSON()返回有效的GeoJSON功能对象,表示为:

{
  "type": "Feature",
  "properties": {
    "Foo": "Bar"
    // More properties that may be pre-filled.
  },
  "geometry": // The vector geometry
}
 类似资料:
  • 我已经从.shap文件转换了GeoJson文件。每个对象都有弧、点和一些其他特性。现在,当我试图用这个在线应用程序将这个GeoJson文件转换为TopoJson文件时http://shancarter.github.io/distillery/ 转换后的TopoJson与D3.js配合使用,但对象只有类型:多边形和圆弧属性。所有其他属性,如id、GEOFIP等都消失了。我需要这些属性,但至少需要2

  • 我试图将一个可绘制资源转换为位图,但每个代码段和每个自己的尝试都返回null或空字符串。 我尝试了一些基本的方法,比如Bitmapfactory。decodeResource(在这里,我尝试了活动上下文、应用程序上下文等,以及各种可绘制资源(png、vector、xml),我尝试了转换中的不同代码段,它总是返回null或“”。我还尝试更改可绘制文件夹而不是可绘制文件夹-24我尝试了基本的可绘制文件

  • 我有一个来自服务器的json响应,其中包含GeoJson格式的多边形信息,如下所示: 现在我想将此json转换为mapbox多边形,我正在使用gson转换器进行改装,以从服务器接收响应: ,但是我有这个错误: 我怎样才能解决这个问题?

  • 问题内容: 我想将此yaml字符串转换为json,因为源数据是动态的,所以我无法将其映射到结构: 然后我想再次将该接口转换为json字符串: 但是发生错误: 问题答案: 前言: 我优化并改进了以下解决方案,并将其作为库发布在这里:。以下功能可作为。 问题在于,如果您使用最通用的类型来解组,则包用于解组键- 值对的默认类型将是。 第一个想法是使用: 但是,如果yaml配置的深度大于一,则此尝试将失败

  • 作为一个简化的例子,考虑这个有两个字段的表。一个是字符串,另一个是XML。 Source=“MediaConversions” 现在我想查询该表,并将结果作为json,但也要一次性将XML转换为json。 导致 [{"Source":"媒体转换","OrderParameter":" 但我想把它转换成: [{"Source":"MediaConversion","OrderParameter":{

  • 除了图像数据,我们也可以提取图像的data URL,data URL实质上是一个很长的文本字符串,该字符串包含对画布图像进行编码后的信息。如果想把画布上的图像保存到本地存储或离线数据库,data URL就非常方便。本节,我们将绘制一个云状图形,获取其data URL,然后把它插入到HTML页面,以便我们能看到它是什么样子。 绘制步骤 按照以下步骤,把画布上的图画转换为data URL: 1. 定义