Hi
I found the sollution. It wasn’t the navigation control that did it but the
dragfeature control. I added this to the dragfeature:
dragFeature.handlers['drag'].stopDown = false;
dragFeature.handlers['drag'].stopUp = false;
dragFeature.handlers['drag'].stopClick = false;
dragFeature.handlers['feature'].stopDown = false;
dragFeature.handlers['feature'].stopUp = false;
dragFeature.handlers['feature'].stopClick = false;
Now everything works.
greetings
Ruben
From: Alexandre Dubé
Sent: Friday, August 17, 2012 7:57 PM
To: [email protected]
Cc: [email protected]
Subject: Re: [OpenLayers-Users] SelectFeature and navigation
Hi,
At this point, I don't know what could be the cause of this behavior. Could
you provide a small live demo showing the issue ?
Alexandre
On 12-08-17 09:14 AM, [email protected] wrote:
Hi
The code is below.
The problem is that after a pan or zoom the onSelect function of the
SelectFeature is no longer called. DragFeature still works.
<script
src="@Url.Content("~/Scripts/OpenLayers/OpenLayers.debug.js")"></script>
<script>
var map;
var groundPLan;
var icon;
var markers;
var clickedMarker = null;
function init() {
groundPLan = new OpenLayers.Layer.XYZ(
'GroundPlan',
'@Url.Content("~/Maps/" + ViewBag.Id)/${z}/${x}/${y}.jpg',
{
attribution: "© Limotec",
sphericalMercator: false,
wrapDateLine: false,
transitionEffect: 'resize',
buffer: 1,
numZoomLevels: 5
}
);
map = new OpenLayers.Map('map_canvas', { controls: [] });
map.addLayer(groundPLan);
map.addControl(new OpenLayers.Control.Attribution());
map.addControl(new OpenLayers.Control.Navigation({ dragPanOptions: {
enableKinetic: true} }));
map.setCenter(new OpenLayers.LonLat(0, 0), 2);
map.div.oncontextmenu = function noContextMenu(e) {
var lonlat = map.getLonLatFromPixel(new
OpenLayers.Pixel(e.layerX, e.layerY));
$("#lat").val(lonlat.lon);
$("#lng").val(lonlat.lat);
$("#detList").dialog("open");
return false;
};
var renderer =
OpenLayers.Util.getParameters(window.location.href).renderer;
renderer = (renderer) ? [renderer] :
OpenLayers.Layer.Vector.prototype.renderers;
markers = new OpenLayers.Layer.Vector("Markers",
{
renderOptions: { yOrdering: true },
renderers: renderer
}
);
map.addLayer(markers);
var dragFeature = new OpenLayers.Control.DragFeature(markers);
dragFeature.onComplete = function (feature, pixel) {
var id = feature.geometry.id;
id = id.replace('Det_', '');
var lonLat = map.getLonLatFromPixel(pixel);
$.post(
'@Url.Action( "MoveDet", "Api" )',
{ id: id, lat: lonLat.lon, lng: lonLat.lat }
);
}
map.addControl(dragFeature);
dragFeature.activate();
var clickFeature = new OpenLayers.Control.SelectFeature(markers);
clickFeature.handlers.feature.stopDown = false;
clickFeature.onSelect = function (feature) {
var id = feature.geometry.id;
id = id.replace('Det_', '');
$.post('@Url.Action("GetDetectorById", "Api")',
{ detId: id },
function (data) {
if (data.Id != null) {
clickedMarker = feature;
$("#lat").val(data.X);
$("#lng").val(data.Y);
OpenDetector(data.Id, data.InTest, data.InService,
data.Name);
} else {
alert(data);
}
}
);
}
map.addControl(clickFeature);
clickFeature.activate();
}
function SetMarkerIcon(det, type) {
var lat = parseFloat(det.Lat);
var lng = parseFloat(det.Lng);
var id = "";
if (type != "optical") {
id = "fire_" + det.Id;
} else {
id = "detIcon_" + det.Id;
}
var marker = new OpenLayers.Feature.Vector(new
OpenLayers.Geometry.Point(lat, lng));
marker.style = {
externalGraphic: '@Url.Content("~/Images/Icons/Optical.png")',
graphicOpacity: 1.0,
graphicWidth: 30,
graphicHeight: 30,
graphicYOffset: -15,
graphicXOffset: -15,
cursor: 'pointer',
backgroundGraphic:
'@Url.Content("~/Images/Icons/Optical_Shadow.png")',
backgroundXOffset: -12,
backgroundYOffset: -12,
graphicZIndex: 11,
backgroundGraphicZIndex: 10
}
marker.url = '@Url.Action("MoveDet", "Api")';
marker.geometry.id = "Det_" + det.Id;
markers.addFeatures(marker);
}
$(document).ready(function () {
init();
});
</script>
greetings
Ruben
From: Alexandre Dubé
Sent: Friday, August 17, 2012 2:53 PM
To: [email protected]
Subject: Re: [OpenLayers-Users] SelectFeature and navigation
Hi Ruben,
Would you please provide more details, like a live short demo showing the
issue or paste some code ? The SelectFeature control doesn't deactivates
itself after a pan or zoom, so we need to find out why it does in your case.
To help you find out what the issue is, you can minimize your code step by
step. This nice article mentions a lot about this, I'd suggest you read it
first :
http://docs.openlayers.org/help/minimize.html
Best regards,
Alexandre
On 12-08-17 04:27 AM, [email protected] wrote:
Hello
When the map is loaded the selectfeature works, but after a pan or zoom it
doesn’t. It seems that the selectfeature is deactivated after pan or zoom.
Is there a way to reactivate the selectfeature after a pan or zoom?
greetings
Ruben
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users
--
Alexandre Dubé
Mapgears
www.mapgears.com
------------------------------------------------------------------------------
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users
--
Alexandre Dubé
Mapgears
www.mapgears.com
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users