[OpenLayers-Users] SelectFeature and navigation
Alexandre Dubé
adube at mapgears.com
Fri Aug 17 10:57:26 PDT 2012
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, ontwerp at limotec.be 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é <mailto:adube at mapgears.com>
> *Sent:* Friday, August 17, 2012 2:53 PM
> *To:* openlayers-users at lists.osgeo.org
> <mailto:openlayers-users at lists.osgeo.org>
> *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, ontwerp at limotec.be 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
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
>
> --
> Alexandre Dubé
> Mapgears
> www.mapgears.com
>
> ------------------------------------------------------------------------
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
--
Alexandre Dubé
Mapgears
www.mapgears.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20120817/aa2f1c8d/attachment-0001.html>
More information about the Users
mailing list