我對Leaflet很新,我試圖在我的webmap上獲得一些非常基本的(或者我認爲)功能。簡而言之,我在Geoserver上託管了許多(179)WMS圖層,我希望用戶能夠單擊任何功能並顯示彈出窗口,以顯示有關該功能的信息。如何在小冊子地圖中顯示從Geoserver WMS圖層顯示要素屬性的彈出窗口?
我有179個圖層,每個圖層都代表我爲之工作的地圖庫的紙質地圖圖紙的多邊形覆蓋區。每個圖層代表集閤中的一系列「地圖」。每個圖層的屬性字段是相同的。其中一些功能堆疊在一起(同一地圖不同版本的多個記錄)。爲了讓您瞭解我有興趣創建的內容,下面是我在ArcGIS在線中製作的link to my pilot application(僅顯示3個圖層)。原諒基本的HTML,這只是一個例子,展示我需要做什麼。
我已經創建了一個傳單圖,其中顯示了兩個圖層,我想在添加其他圖層後再找出此功能。
是否可以創建一個彈出窗口,可以顯示來自多個圖層的多個要素的信息?
我可以控制顯示在彈出窗口中的屬性嗎?
做某種「信息窗口」而不是彈出窗口會更容易嗎?
真的,任何建議,以防止我放棄這個項目將不勝感激。
var map;
function mapinitialize() {
var osm = L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 19,
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>'
});
map = new L.Map('map',
{
center: new L.LatLng(46, -90),
zoom: 6,
layers: [osm],
zoomControl: true
});
//This is all for the layer control:
var f0999 = new L.TileLayer.WMS(GEOSERVERBASE + "/geoserver/Geodex/wms",
{
layers: "Geodex:f0999",
format: 'image/png',
styles: 'F0999',
transparent: true,
attribution: ""
});
var f0177 = new L.TileLayer.WMS(GEOSERVERBASE + "/geoserver/Geodex/wms",
{
layers: "Geodex:f0177",
format: 'image/png',
styles: 'F0177',
transparent: true,
attribution: ""
});
var baseMaps = {
"osm": osm
};
var overlayMaps = {
"f0999 Messing Around Layer": f0999,
"f0177 Nautical Charts": f0177
};
L.control.layers(baseMaps, overlayMaps).addTo(map);
//End layer control
當前彈出:
map.on('click', function(e){
var popupContent = "You have clicked the map at " + e.latlng.lat + ", " + e.latlng.lng;
var marker = new L.marker(e.latlng).addTo(map)
.bindPopup(popupContent)
.openPopup();
});
}
所有在傳單,我可以找到被分配到的標記,並且你可以在代碼中看到彈出窗口中的引用,我已經能夠分配彈出到一個標記。
理想情況下,我想在用戶點擊並顯示下面的功能的屬性時放置一個標記。目的是用戶可以使用此應用程序來查詢我們針對特定區域的地圖。
重複的https://gis.stackexchange.com/questions/148952/trying-to-bind-pop-up-in-leaflet-via-geoserver-getfeatureinfo-is-there-anything?s=4|1.1034 –