Я новичок в Openlayers 3. У меня есть импорт векторного слоя из файла geojson. Я хотел бы показать информацию о моей функции после нажатия на векторный слой. Любая идея, как я могу это сделать?
Отображение имени объекта после нажатия на ВЕКТОРНЫЙ СЛОЙ
Ответы (2)
Для этой цели я использовал библиотеку из здесь. Пример кода
var popup = new ol.Overlay.Popup();
map.addOverlay(popup);
//handling Onclick popup
map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
return feature;
});
if (feature) {
var coord = event.feature.getGeometry().getCoordinates();
popup.show(coord, '<div><h2>Tilte</h2><p>' +feature.get('<property_in_single_quotes>')+ '</p></div>');
}
});
Надеюсь это поможет
person
KcYoosuf
schedule
04.03.2016
Спасибо, это работает! Я написал так: map.on('click', function(e) { var feature = map.forEachFeatureAtPixel(e.pixel, function(feature) { return feature; }); var infoElement = document.getElementById('info '); infoElement.innerHTML = feature ? feature.get('gml_id') : ''; Я хочу показать больше возможностей, а не только 'gml_id'. Как мне это написать?
- person Agnieszka; 04.03.2016
Я думаю, вы можете использовать jquery append() для добавления для этой цели вместе с feature.get('‹water_information›')
- person KcYoosuf; 04.03.2016
Где именно я должен поставить append ()?
- person Agnieszka; 04.03.2016
Что-то вроде следующего фрагмента
$("#info").append('<b>Title</b> : '+feature.get('gml_id')+'<br/> <b>Title</b> : '+feature.get('gml_id_2'))
- person KcYoosuf; 04.03.2016
Вместо infoElement.innerHTML = функция? feature.get('gml_id'): ''; используйте этот $(#info).append('‹b›Title‹/b›: '+feature.get('gml_id')+'‹br/›‹b›Title‹/b›: '+feature.get ('gml_id_2')) .
- person Agnieszka; 04.03.2016
Да, попробуйте... В моем случае я не использовал append().
- person KcYoosuf; 04.03.2016
Оно работает. Но когда я щелкаю другой векторный слой, я все еще вижу предыдущую информацию. Я хотел бы после нажатия на другой слой закрыть предыдущую информацию. У вас есть идея, как это сделать?
- person Agnieszka; 04.03.2016
Взгляните на эти примеры:
1) http://openlayers.org/en/v3.14.1/examples/vector-layer.html?q=overlay
2) http://openlayers.org/en/v3.14.1/examples/popup.html?q=overlay
Вместо размещения векторной информации рядом с картой вы помещаете ее в созданное вами всплывающее окно <div>
.
person
kaycee
schedule
03.03.2016