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

在传单中的标记之间画线

李博达
2023-03-14

我试图在传单中的标记(从JSON数据生成)之间插入行。我看到了一个示例,但它不能使用JSON数据。我能看到标记,但没有线条出现。

var style = {
  color: 'red',
  fillColor: "#ff7800",
  opacity: 1.0,
  fillOpacity: 0.8,
  weight: 2
};

$.getJSON('./server?id_dispositivo=' + id_device + '', function(data) {
  window.geojson = L.geoJson(data, {
    onEachFeature: function (feature, layer) {
      var Icon = L.icon({
        iconUrl: './images/mymarker.png',
        iconSize: [18, 28], // size of the icon
        style: style,
      });
      layer.setIcon(Icon);
      layer.bindPopup(feature.properties.date + '<br />' + feature.properties.id);
    }
  });
});
map.addLayer(geojson);

我的JSON数据:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          -70.219841,
          8.6310997
        ]
      },
      "properties": {
        "id": 336,
        "id_user": 1,
        "id_device": 1,
        "timestamp": 1446571154,
        "date": "12:49PM 03-11-2015",
        "Latitude": 8.6310997,
        "Longitude": -70.219841,
        "speedKPH": 0,
        "heading": "",
        "Name": "N\/D",
        "City": "N\/D",
        "estatus": "Stop"
      }
    }
  ]
}

共有1个答案

轩辕嘉平
2023-03-14

通过迭代原始的GeoJSON或生成的l.GeoJSON层来生成折线几何图形,有许多方法可以做到这一点。下面是一个简单的函数,它将把L.Geojson点层转换成一个坐标数组,可以传递给L.polyline:

function connectTheDots(data){
    var c = [];
    for(i in data._layers) {
        var x = data._layers[i]._latlng.lat;
        var y = data._layers[i]._latlng.lng;
        c.push([x, y]);
    }
    return c;
}

这里有一把小提琴,显示了它在一些合成GeoJSON数据上的工作:

http://jsfiddle.net/nathansnider/36twhxux/

假设您的GeoJSON数据只包含点几何图形,在$.getjson成功函数中定义window.GeoJSON之后,您应该能够使用它,如下所示:

pathCoords = connectTheDots(window.geojson);
var pathLine = L.polyline(pathCoords).addTo(map)

如果您的GeoJSON数据更复杂,您可能需要添加一些条件来检查几何类型等,但这至少应该让您对如何进行有一个大致的了解。

 类似资料:
  • 我对传单很陌生。 我在传单上的地图上画了多个标记/圆圈标记。

  • 在其他套件中,类都存在于同一个节点中,这工作很好。然而,在这个套件中,我们只获得最后一个节点的数据。它似乎正在覆盖前面的三个,方法是用每一个创建一个ITestContext的新实例。不幸的是,我无法将这个套件合并为一个单独的套件,因为我们将失去参数化测试的能力。 我需要知道是否有一种被接受的方式来在不同节点中包含的测试方法之间传递信息。我尝试在公共父级中使用静态变量(未成功),在testNG文档中

  • 当我在标记中单击时,警报消息是:未定义 但是如果我把它放在变量映射中,它就起作用了!(显示经纬度) 有人知道为什么它在标记器里不起作用吗?

  • 问题内容: 我正在用Matplotlib绘制两个子图,基本上如下: 我可以在这两个子图之间画线吗?我该怎么办? 问题答案: 在许多情况下,其他答案的解决方案不是最优的(因为它们只有在计算出点数后未对图进行任何更改的情况下才会起作用)。 更好的解决方案将使用特别设计的:

  • 嗨,我有一个html文件解析的场景。我正在使用jsoup解析html文件,解析后我想提取头标记(h1、h3、h4)。我用过医生。select()但它将只返回标题标记值,但我的要求是我应该提取h1到h3或h4之间的标记,反之亦然。 所以这里首先搜索html字符串是否包含任何H1,H3,H4。这里我们有h4,所以包括h4,它应该搜索下一个h1或h3,直到h3我们提取字符串并把它放在一个单独的html文

  • 我基于matplotlib中的:热图和pcolor? 我了解了如何在Matplotlib中更改记号标签和轴标签之间的分隔,但这不是我所需要的 如何固定标签的位置,使其与刻度对齐?