Показать всплывающее окно при нажатии на маркер в открытых слоях 3

Ниже мой код. Это работает нормально, но я хочу знать, как выдать всплывающее окно на щелчке маркера? Содержимое в маркере, которое я хочу показать динамически извлекаемым из базы данных mysql с использованием php, но сейчас я хочу знать, как задать различные всплывающие окна для каждого маркера здесь?

<div id="mapdiv"></div>

<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script>
map = new OpenLayers.Map("mapdiv");
map.addLayer(new OpenLayers.Layer.OSM());

epsg4326 =  new OpenLayers.Projection("EPSG:4326"); //WGS 1984 projection
projectTo = map.getProjectionObject(); //The map projection (Spherical Mercator)

var lonLat = new OpenLayers.LonLat( 13.0161, 22.2845 ).transform(epsg4326, projectTo);

var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
var cmark = [13.0161, 22.2845];
markers.addMarker(new OpenLayers.Marker(lonLat));

var zoom=8;
map.setCenter (lonLat, zoom);

var vectorLayer = new OpenLayers.Layer.Vector("Overlay");

// Define an array. This could be done in a seperate js file.
// This tidy formatted section could even be generated by a server-side script (jsonp)
var markers = [
[ 73.0161, 26.2845 ],
[ -0.1244324, 51.5006728 ],
[ -0.119623, 51.503308 ]
];

//Loop through the markers array
for (var i=0; i<markers.length; i++) {

var lon = markers[i][0];
var lat = markers[i][1];

var feature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Point( lon, lat ).transform(epsg4326, projectTo),
{description: "marker number " + i} ,
{externalGraphic: 'marker.png', graphicHeight: 25, graphicWidth: 21, graphicXOffset:-12, graphicYOffset:-25  }
);
vectorLayer.addFeatures(feature);
}
map.addLayer(vectorLayer);
</script>

0

Решение

добавить всплывающее окно в OpenLayers 2:

popup = new OpenLayers.Popup("yourPopupID",
new OpenLayers.LonLat(lon,lat),//could be fetched from a DB
new OpenLayers.Size(200,200),
"yourDescription",//could be fetched from DB
true);

map.addPopup(popup);

теперь этого достаточно для примера кода, который вы предоставили в своем вопросе, вы можете извлечь свои данные из базы данных, используя AJAX-вызов php-скрипта, который сделает всю работу

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]