не могу реализовать L.mapbox.simplestyle с помощью geoJson

Я пытаюсь реализовать параметры простого стиля для размера и цвета маркера, но не могу заставить их отображать. В этом простом тестовом случае я пытаюсь следовать собственным пример довольно точно:

var myData = [
      {
        "type": "Feature",
        "geometry": {
          "type": "Point",
          "coordinates": [4.509373,51.932994]
        },
        "properties": {
             "marker-size": "large",
             "marker-color": "#ffcc00"
        }
      }
    ];

var map = L.mapbox.map('map', 'examples.map-20v6611k')
    .setView([51.932994,4.509373], 8);

L.geoJson(myData, { style: L.mapbox.simplestyle.style }).addTo(map);

скрипка

Но маркер отображается в стиле по умолчанию. Что мне не хватает?


person nathanbweb    schedule 30.05.2014    source источник


Ответы (2)


Хорошо, у меня все работает, используя эту расширенную функцию из эта страница документации Mapbox:

L.geoJson(myData, {
    pointToLayer: L.mapbox.marker.style,
    style: function(feature) { return feature.properties; }
}).addTo(map);

В другом примере Mapbox не было похоже, что аргумент pointToLayer требуется, но что бы ни работало:

скрипка

person nathanbweb    schedule 30.05.2014
comment
Да, у Leaflet разные пути кода для точек и не точек. - person tmcw; 31.05.2014
comment
Есть ли способ сделать это, если у вас нет доступа к объекту myData? Другими словами, как это сделать на стороне клиента? У меня это не работает: см. мой SO здесь Стилизация маркеров mapbox с использованием l geojson"> stackoverflow.com/questions/33609348/ - person redshift; 09.11.2015

Другой альтернативой может быть создание featureLayer на основе ваших данных myData:

var featureLayer = L.mapbox.featureLayer(myData).addTo(map);

Однако ваши данные должны быть объектом, а не массивом:

var myData = {
    "type": "Feature",
    "geometry": {
      "type": "Point",
      "coordinates": [4.509373,51.932994]
    },
    "properties": {
         "marker-size": "large",
         "marker-color": "#ffcc00"
    }
  };
person geografa    schedule 30.05.2014