লিফলেট জিওজসন সমন্বয় সমস্যা


14

আমি সবেমাত্র লেফলেট / জিওজসনের সাথে খেলতে শুরু করেছি। তবে আমার স্থানাঙ্কগুলি যথাযথভাবে রেন্ডার হয় না এবং যা চলছে তা আমার কোনও ধারণা নেই।

আমার স্থানাঙ্ক আছেন: 52.23943, 4.97599। তারা setViewফাংশন দিয়ে সঠিক কাজ।

var map = L.map('leaflet_map').setView([52.23943, 4.97599], 15);

তবে একটি ভূগর্ভস্থ বৈশিষ্ট্য ব্যবহার করে তারা সোমালিয়ার পূর্বদিকে কোথাও হুম, মাই 'প্রজেক্টড'।

var geojsonFeature = {
            "type": "Feature",
            "properties": {
            "name": "Coors Field",
            "amenity": "Baseball Stadium",
            "popupContent": "This is where the Rockies play!"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [52.23943, 4.97599]
            }
        };
        var myLayer = L.geoJson().addTo(map);
        myLayer.addData(geojsonFeature).bindPopup("I am a gjson point.");

এখানে কি ঘটছে কে জানে?

সম্পাদনা

খাঁটি কৌতূহলের বাইরে আমি চারদিকে স্থানাঙ্কগুলি পরিবর্তন করেছি [4.976143930893815,52.23925499011473]এবং পয়েন্টটি তার সঠিক অবস্থানে উপস্থিত হয়েছে। একটি পরিচিত বাগ !?

উত্তর:


25

আমি এটিকে বাগ বলব না, কেবল বিভ্রান্তিকর এবং বিপরীত মানের।

ভৌগলিক অবস্থানের বিষয়ে কথা বলার সময় আমরা সাধারণত ল্যাট-লং ব্যবহার করি। এটি আইএসও 6709 স্ট্যান্ডার্ডে কোডেড হয়েছে ।

কার্টেসিয়ান স্থানাঙ্ক জ্যামিতির সাথে কাজ করার সময়, আমরা সাধারণত এক্সওয়াই ব্যবহার করি। অনেক জিআইএস সিস্টেম, 2 ডি স্থানাঙ্ক পয়েন্টের একটি বিশেষ কেস হিসাবে একটি ভৌগলিক অবস্থানের সাথে কাজ করে, যেখানে এক্সটি দ্রাঘিমাংশকে এবং Y অক্ষাংশকে উপস্থাপন করে। স্থানাঙ্কের এই ক্রমটি নিয়মিত ল্যাট-লম্বা ধারণার ঠিক বিপরীত।

আপনার সমস্যার জন্য আসছে:

Map.setView একটি লাগে l.LatLong একটি ইনপুট, যেখানে প্রথম cordinate একটি অক্ষাংশ হিসাবে, এবং দ্বিতীয় দ্রাঘিমাংশের হয়।

অতএব আপনি যখন চান 52.23N, 4.97E, আপনি ভিতরে পাস[52.23943, 4.97599]

GeoJSON মান বলছেন যে কোনো স্থানে জন্য, প্রথম প্যারামিটার এক্স স্থানাংক যে (অর্থাত দ্রাঘিমাংশের) এবং দ্বিতীয় প্যারামিটারটি ওয়াই তুল্য হয় (অর্থাত অক্ষাংশ);

অতএব আপনি 52.23N, 4.97Eজিওজেসনে চাইলে আপনাকে পাস করতে হবে [4.97599, 52.23943]

আরও পড়ার জন্য, এই প্রশ্নোত্তর মাধ্যমে যান


নিশ্চয়ই বিভ্রান্তির বিষয়। আমি কেবল জিওজসন স্পেকটি পড়েছি এবং প্রকৃতপক্ষে আপনি একদম ঠিক বলেছেন। এখানে উদ্ধৃতিটি হল উপাদানগুলির ক্রমটি অবশ্যই x, y, z ক্রমটি অনুসরণ করবে (পূর্বাভাসিত স্থানাঙ্কের রেফারেন্স সিস্টেমে স্থানাঙ্কগুলির জন্য পূর্বাঞ্চল, নরটিং, উচ্চতা বা ভৌগলিক স্থানাঙ্ক রেফারেন্স সিস্টেমের স্থানাঙ্কের জন্য দ্রাঘিমাংশ, অক্ষাংশ, উচ্চতা)
লার্সভেগাস

1
@ লার্সভেগাস এই ইস্যুর মূলটি ইংরেজি ভাষা। আমরা সাধারণত ল্যাট-লং বলি যখন আমরা ভৌগলিক অবস্থানের বিষয়ে কথা বলি এবং যখন স্থানাঙ্কিত জ্যামিতির কথা বলি তখন এক্সওয়াই ব্যবহার করি।
দেবদত্ত টেংশে

কোন প্রোগ্রাম এবং গ্রন্থাগারগুলি এক্স, ওয়াই এবং কোনটি ওয়াই, এক্স যুগল ক্রম ব্যবহার করে তার সংক্ষিপ্তসার: macwright.org/lonlat , সৌজন্যে টম
ম্যাকউইট

এই সহায়ক উত্তরের জন্য ধন্যবাদ ... তবে জিওজসন কেন এটি করতে বেছে নিয়েছে ??
টমি

1

আমি সবেমাত্র এই বিষয়টি নিয়ে মাথা ঘামিয়েছি। যে কেউ এই সমস্যাটি অনুভব করছেন এবং যার যথেষ্ট পরিমাণে লাত, লম্বা ডেটা জোড়া রয়েছে, আপনি নিম্নলিখিত জেএস ব্যবহার করতে পারেন:

var a = "[LatLng(37.43943, 25.30563)],[LatLng(37.4367, 25.30495)],[LatLng(37.43071, 25.29945)],[LatLng(37.42362, 25.30426)],[LatLng(37.42089, 25.31113)],[LatLng(37.41489, 25.31113)],[LatLng(37.41053, 25.30769)],[LatLng(37.40235, 25.30563)],[LatLng(37.40562, 25.31525)],[LatLng(37.41816, 25.31937)],[LatLng(37.42307, 25.3228)],[LatLng(37.40889, 25.33104)],[LatLng(37.4078, 25.33722)],[LatLng(37.41598, 25.33791)],[LatLng(37.40344, 25.35027)],[LatLng(37.40726, 25.3688)],[LatLng(37.42253, 25.39009)],[LatLng(37.4138, 25.39902)],[LatLng(37.42907, 25.4052)],[LatLng(37.42961, 25.41962)],[LatLng(37.44215, 25.42442)],[LatLng(37.44543, 25.45807)],[LatLng(37.46287, 25.4615)],[LatLng(37.47595, 25.46013)],[LatLng(37.47104, 25.42786)],[LatLng(37.48249, 25.42923)],[LatLng(37.48358, 25.41)],[LatLng(37.49502, 25.40588)],[LatLng(37.49447, 25.38597)],[LatLng(37.49066, 25.3791)],[LatLng(37.46941, 25.38254)],[LatLng(37.46178, 25.37773)],[LatLng(37.4754, 25.35988)],[LatLng(37.4972, 25.35782)],[LatLng(37.50047, 25.34203)],[LatLng(37.49774, 25.32761)],[LatLng(37.49229, 25.3228)],[LatLng(37.4912, 25.3125)],[LatLng(37.4814, 25.30907)],[LatLng(37.47268, 25.31113)],[LatLng(37.46341, 25.32692)],[LatLng(37.44597, 25.32692)],[LatLng(37.42798, 25.3228)],[LatLng(37.43943, 25.30563)]".split("],[");
var b = a.map(function(x) { 
    var couple= (/\d+.\d+, \d+.\d+/g).exec(x).toString();
    var splitted = couple.split(", ");
    return "["+splitted[1]+","+splitted[0]+"]";
                            } );
b.join(); 

সম্পাদনা করুন: এই এসও উত্তর অনুসারে , দৃশ্যত এই পদ্ধতিটিও রয়েছে:

L.GeoJSON.coordsToLatLng()

আমি এটি ব্যবহার করতে চাই না তবে এটি আশাব্যঞ্জক বলে মনে হচ্ছে।


1
একটি দরকারী ফাংশন। সর্বাধিক ইনপুট সম্ভবত খালি যুগল তালিকা তুল্য যদিও হবে - [[60.672744462452,-135.02487602415],[60.673011537554,-135.02487602415]]। আমি জিওজসন-ফ্লিপ নোডেজ মডিউলটি দেখেছি কিন্তু ব্যবহার করি নি
ম্যাট উইলকি

আপনার সদয় কথার জন্য টাই। আমি বেশিরভাগ সময়ই শেষ মুহুর্তের সমাধান হিসাবে যখন আমি একটি শক্ত সময়সূচীতে কাজ করি। লিফলেট লাইব্রেরি দ্বারা বাস্তবে একটি পদ্ধতি সরবরাহ করা হয়েছে যা আমি পরে শিখেছি ঠিক তা করতে পারি না (এখনই মনে করতে পারে না তবে আপনি যা চান তা পরীক্ষা করতে পারি)।
alexandros84

লিফলেট পদ্ধতিটির নাম সহায়ক হবে! আমি এটি সন্ধান করতে পারিনি, এবং আমি উপরে উল্লিখিত জিওজসন-ফ্লিপ মডিউলটি আমার ডেটা নিয়ে কাজ করে না।
ম্যাট উইলকি

টার্ফের মধ্যে এমন কিছু পাওয়া গেছে , যা একটি বেশ ভাল সমর্থিত মডিউল: টারফজস.আর.অর্গ
ম্যাট উইলকি

1
ওহে, দীর্ঘ বিলম্বের জন্য দুঃখিত, তবে এখানে আমি যা বলছিলাম: stackoverflow.com/questions/35983078/…
alexandros84
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.