जावास्क्रिप्ट (Node.js) में भू-स्थान और मानचित्र
भौगोलिक डेटा और मानचित्र प्रदर्शन के साथ काम करना आधुनिक वेब अनुप्रयोगों के प्रमुख कार्यों में से एक है। Node.js पारिस्थितिकी तंत्र में कई लाइब्रेरीज़ मौजूद हैं जो निर्देशांकों को संसाधित करने, मार्ग बनाने, रिवर्स जियोकोडिंग करने और इंटरैक्टिव मानचित्र प्रस्तुत करने की अनुमति देती हैं। इस लेख में हम मुख्य उपकरणों की समीक्षा करेंगे और सर्वर-साइड (Node.js) के लिए व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।
1. भू-डेटा के साथ काम करने के लिए मुख्य लाइब्रेरीज़
1.1. Leaflet (क्लाइंट-साइड) और node-leaflet
Leaflet इंटरैक्टिव मानचित्रों के लिए सबसे लोकप्रिय JavaScript लाइब्रेरी है। यह ब्राउज़र साइड पर काम करती है, लेकिन Node.js के लिए पैकेज leaflet (के माध्यम से npm install leaflet) मौजूद है, जो leaflet-headless का उपयोग करके सर्वर पर मानचित्र प्रस्तुत करने या GeoJSON प्रारूप में डेटा का उपयोग करने की अनुमति देता है।
सर्वर पर छवि के रूप में मानचित्र जनरेट करने का उदाहरण (leaflet-static के साथ):
const L = require('leaflet');const { createCanvas } = require('canvas');
const map = L.map(createCanvas(800, 600), { center: [55.751244, 37.618423], // मॉस्को zoom: 10});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap योगदानकर्ता'}).addTo(map);
// PNG में निर्यात (सरलीकृत)const buffer = map.getCanvas().toBuffer();require('fs').writeFileSync('map.png', buffer);1.2. OpenStreetMap (OSM) और Overpass API
OpenStreetMap वस्तुओं की खोज के लिए मुफ्त टाइल्स और API प्रदान करता है। Node.js में OSM के साथ काम करने के लिए अक्सर पैकेज osmosis या https://nominatim.openstreetmap.org पर सीधे HTTP अनुरोधों का उपयोग किया जाता है।
रिवर्स जियोकोडिंग का उदाहरण (निर्देशांकों से पता प्राप्त करना):
const fetch = require('node-fetch');
async function reverseGeocode(lat, lon) { const url = `https://nominatim.openstreetmap.org/reverse?format=json&lat=${lat}&lon=${lon}`; const response = await fetch(url, { headers: { 'User-Agent': 'PythonLibExample/1.0' } }); const data = await response.json(); return data.display_name;}
reverseGeocode(55.751244, 37.618423).then(addr => console.log(addr));// परिणाम: "मॉस्को, रूस, रेड स्क्वायर"1.3. Turf.js — भू-स्थानिक विश्लेषण
Turf.js ज्यामितीय संचालन करने के लिए एक शक्तिशाली लाइब्रेरी है: बफरिंग, बहुभुजों का संयोजन, दूरी, क्षेत्रफल आदि की गणना। यह ब्राउज़र और Node.js दोनों में काम करती है।
दो बिंदुओं के बीच दूरी की गणना का उदाहरण (किलोमीटर में):
const turf = require('@turf/turf');
const point1 = turf.point([37.618423, 55.751244]); // [lon, lat]const point2 = turf.point([30.315868, 59.939095]); // सेंट पीटर्सबर्ग
const distance = turf.distance(point1, point2, { units: 'kilometers' });console.log(`दूरी: ${distance.toFixed(2)} किमी`); // ≈ 634.5 किमी1.4. GeoJSON और shapefile
GeoJSON भौगोलिक संरचनाओं (बिंदु, रेखाएं, बहुभुज) को संग्रहीत करने का एक प्रारूप है। Node.js में इसके साथ काम करने के लिए अंतर्निहित JSON.parse पर्याप्त है, और shape-फ़ाइलों को पढ़ने के लिए पैकेज shapefile का उपयोग किया जाता है।
const shapefile = require('shapefile');
shapefile.open('path/to/file.shp') .then(source => source.read() .then(function log(result) { if (result.done) return; console.log(result.value); // GeoJSON फीचर return source.read().then(log); })) .catch(error => console.error(error));2. उन्नत उपकरण
2.1. Mapbox GL JS (Node.js)
Mapbox उच्च-विस्तार वाले मानचित्रों के साथ एक वाणिज्यिक प्लेटफॉर्म प्रदान करता है। सर्वर-साइड रेंडरिंग के लिए @mapbox/mapbox-gl-native का उपयोग करें। API कुंजी आवश्यक है।
2.2. Nominatim (जियोकोडिंग)
पुस्तकालय में भी
अनुशंसाएँ