ওপেনলায়ার্স -২ এ কীভাবে মাউস পজিশনটি টুলটিপ হিসাবে প্রদর্শন করবেন?


10

আমি ওপেনলায়ার্সে মাউস ওভার এফেক্ট হিসাবে মানচিত্রের স্থানাঙ্ক চাই। আমি নিম্নলিখিত কোড ব্যবহার করছি। তবে এটি পিক্সেল স্থানাঙ্ক দেখায়:

    map.events.register("mousemove", map, function(e) {      
      var position = e.map.x + e.xy.y;
      OpenLayers.Util.getElement("tooltip").innerHTML = position 
    });

বাহ 7k দর্শন এবং মাত্র 4 আপ ভোট?
রাডার নীচে

উত্তর:



11

সিমোর উত্তরে যুক্ত করতে ... এখানে একটি উদাহরণ দেওয়া হল:

map.events.register("mousemove", map, function (e) {
    var position = e.map.getLonLatFromViewPortPx(e.xy);
    OpenLayers.Util.getElement("tooltip").innerHTML = "<label>Latitude: " + position.lat + "</label><br/><label>Longitude: " + position.lon + "</label>";
});

আপনার মতো করে মার্কেটর থেকে ভৌগলিক রূপান্তর করার দরকার হতে পারে ... যদি তাই হয়:

var position = e.map.getLonLatFromViewPortPx(e.xy).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));

5

ওপ্লেলেয়ার্স ২.১২ অনুসারে নিম্নলিখিত পদ্ধতির উপর স্থানাঙ্কগুলি থেকে স্থানাঙ্কগুলি অ্যাক্সেসের জন্য কাজ করা হয়েছে:

map.events.register("mousemove", map, function (e) {            
var point = map.getLonLatFromPixel( this.events.getMousePosition(e) )     
    console.log(point.lon, point.lat)
});

1

ওপ্লেলেয়ার্স ২.১13 এ, আপনি এটি এর মতো করতে পারেন:

map.addControl(
    new OpenLayers.Control.MousePosition({
        prefix: 'Coords: ',
        separator: ' | ',
        numDigits: 2,
        emptyString: 'Mouse not over map'
    })
);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.