【问题标题】:Start-Marker from geojson polyline来自geoj​​son折线的开始标记
【发布时间】:2014-02-03 08:22:44
【问题描述】:

我有一张地图,其中包含一些步行和自行车路线以及带有一些细节的弹出窗口和图片。现在我想在geojson折线的第一个顶点上设置一个标记,但我不知道如何。顺便提一句。我是传单/地图框的新手,我将我的地图从代码 sn-ps 放在一起。
Here is the map now:

这就是我现在创建折线的方式。我通过 layercontrol 调用它们。

var mtb = L.geoJson(radjs, {
filter: function (feature, layer) {
    if (feature.properties) {
        // If the property "underConstruction" exists and is true, return false (don't render features under construction)
        return feature.properties.typ === 'mtb';
    }
    return true;
},
style: {
    "color": '#6699cc',
    dashArray: '',
    "weight": 4,
    "opacity": 0.6
},    onEachFeature: onEachFeature2}).addTo(rad);

感谢您的帮助, 马克

【问题讨论】:

    标签: leaflet mapbox


    【解决方案1】:

    您可以像在Leaflet GeoJSON Example 中那样将经度和纬度添加到您的geojson 中。

    可能从geojson特征中读取geometry.coordinates并定义一个新的标记会更方便。

    除了你在第 569 行有一个错误。你应该改变:

    var map = L.mapbox.map('map','',{ 
    

    到:

    var map = L.mapbox.map('map',null,{ 
    

    【讨论】:

    • 感谢您的回答。我已经纠正了错误。你能举个例子吗,如何从geojson中读取第一个geometry.coordinate?
    【解决方案2】:

    创建一个简单的标记对象并将其添加到地图中。

    marker = L.marker([0, 0], {
        icon: L.mapbox.marker.icon()
    }).addTo(map)
    

    然后将纬度和经度设置为 geoJSON 的第一个坐标。假设您的 geoJSON 设置为 var geojson,您可以通过索引数组来访问坐标。

    marker.setLatLng(L.latLng(
        geojson.coordinates[0][1],
        geojson.coordinates[0][0]))
    

    【讨论】:

    • 感谢您的建议,但我无法启动并运行它。我已经更新了一些代码,以展示我如何创建折线。有什么建议,我如何使用你的代码?
    • 您的整体代码存在一些问题,但看起来像您already have a marker placed at the start in your geoJSON。第 524 行留下了一个没有右括号的开放尖括号,并且 onEachFeature2 未定义。请先解决这些问题。如果您遇到困难,请尝试CodeSchool course,了解如何更好地诊断和修复这些错误。
    猜你喜欢
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 2014-05-12
    • 2020-03-25
    相关资源
    最近更新 更多