2016-12-02 20 views
0

У меня есть обычная переменная «широта» и «долгота».Листовка. Как я могу получить свойство маркера JSON по широте и долготе?

var custom_loc = [50.34434, 63.23442] 

А также у меня есть JSON данные с точками в формате GeoJSON.

{ 
    "type": "Feature", 
    "geometry": { 
    "type": "Point", 
    "coordinates": [50.34434, 63.23442] 
    }, 
    "properties": { 
    "id" : "1", 
    "name": "Good place" 
    } 
} 

Как я могу найти JSON маркер по "custom_loc" и получить JSON недвижимость (для e.x. "ID")?

Я использую листовки.js в моем проекте.

ответ

0

Вы можете использовать метод маркеров getLatLng() для доступа к его latlng, а затем сопоставить его с вашим пользовательским местоположением. Чтобы привязать идентификатор к слою, лучше всего добавить функцию geoJSON на уровень L.GeoJSON и получить доступ к идентификатору через layer.feature.properties.id или привязать идентификатор к слою с помощью метода onEachFeature, переданного в опции L.GeoJSON.

Затем, когда вы хотите, чтобы найти слой с согласующий LatLng только петлю через GeoJSON слой, используя eachlayer метод т.д .:

var custom_loc = [50.34434, 63.23442]; 
var geoJSON = L.geoJson(
     { 
     "type": "FeatureCollection", 
     "features": [ 
     { 
      "type": "Feature", 
      "geometry": { 
      "type": "Point", 
      "coordinates": [50.34434, 63.23442] 
      }, 
      "properties": { 
      "id" : "1", 
      "name": "Good place" 
      } 
     } 
     ] 
    }, 
    { 
     onEachFeature: function(feature, layer) { 
     layer.options.id = feature.properties.id; 
     } 
    } 
); 
map.addLayer(geoJSON); 

geoJSON.eachLayer(l => { 
    var coords = l.feature.geometry.coordinates; 
    var latlng = l.getLatLng(); 
    if (latlng.lat === custom_loc[1] && latlng.lng === custom_loc[0]) { 
    console.log(`Latlng match: ${l.options.id}`) 
    } 
    if (coords[0] === custom_loc[0] && coords[1] === custom_loc[1]) { 
    console.log(`Latlng match: ${l.options.id}`); 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^