PHP में भू-स्थान और मानचित्र: लाइब्रेरीज़, API और कोड उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में भू-स्थान और मानचित्र: उपकरणों का अवलोकन और कोड उदाहरण



आधुनिक वेब डेवलपमेंट में, भू-स्थान और मानचित्रों के साथ काम करने की कार्यक्षमता कई परियोजनाओं का एक अनिवार्य हिस्सा बन गई है। PHP, एक सर्वर-साइड भाषा होने के नाते, भू-डेटा प्रसंस्करण, मानचित्र सेवाओं के एकीकरण और उपयोगकर्ताओं के स्थान का निर्धारण करने में उत्कृष्ट है। इस लेख में, हम PHP में भू-स्थान और मानचित्रों के साथ काम करने के लिए मुख्य लाइब्रेरीज़ और उपकरणों पर विस्तार से चर्चा करेंगे, साथ ही व्यावहारिक कोड उदाहरण भी प्रस्तुत करेंगे।



1. IP पते द्वारा स्थान निर्धारण (GeoIP)



उपयोगकर्ता का अनुमानित भू-स्थान प्राप्त करने का सबसे सरल तरीका IP पते द्वारा उसका देश और शहर निर्धारित करना है। इसके लिए PHP में कई समाधान मौजूद हैं:



geoip2 लाइब्रेरी (MaxMind GeoIP2)



MaxMind मुफ्त GeoLite2 डेटाबेस और सशुल्क GeoIP2 प्रदान करता है। Composer के माध्यम से स्थापना:



composer require geoip2/geoip2


स्थान निर्धारण का उदाहरण:



<?phprequire_once 'vendor/autoload.php';

use GeoIp2\\Database\\Reader;

// डाउनलोड किए गए GeoLite2-City.mmdb डेटाबेस का पथ निर्दिष्ट करें$reader = new Reader('/path/to/GeoLite2-City.mmdb');$record = $reader->city('8.8.8.8'); // जाँच के लिए IP पता

echo "देश: " . $record->country->name . "<br>";echo "शहर: " . $record->city->name . "<br>";echo "अक्षांश: " . $record->location->latitude . "<br>";echo "देशांतर: " . $record->location->longitude . "<br>";?>


अंतर्निहित फ़ंक्शन geoip_record_by_name()



यदि सर्वर पर GeoIP एक्सटेंशन (पुराना) स्थापित है, तो इसका उपयोग किया जा सकता है:



<?php$record = geoip_record_by_name('8.8.8.8');echo "शहर: " . $record['city'];?>


2. JavaScript + PHP के माध्यम से मानचित्रों के साथ काम करना



PHP HTML/JavaScript उत्पन्न करता है, और मानचित्रों का प्रतिपादन क्लाइंट साइड पर होता है। सबसे लोकप्रिय लाइब्रेरीज़:



  • Leaflet — हल्का, मुफ्त, बिना API-कुंजी के
  • OpenLayers — शक्तिशाली, जटिल भू-स्थानिक कार्यों के लिए
  • Google Maps JavaScript API — कुंजी की आवश्यकता है, लेकिन समृद्ध कार्यक्षमता प्रदान करता है


PHP के साथ Leaflet एकीकरण का उदाहरण



आइए एक मार्कर के साथ एक सरल मानचित्र बनाएं, जिसके निर्देशांक PHP से पारित किए गए हैं:



<?php$lat = 55.7558;  // मॉस्को$lng = 37.6173;?><!DOCTYPE html><html><head>    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />    <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script></head><body>    <div id="map" style="height: 400px; width: 100%;"></div>    <script>        var map = L.map('map').setView([<?= $lat ?>, <?= $lng ?>], 10);        L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {            attribution: '&copy; OpenStreetMap contributors'        }).addTo(map);        L.marker([<?= $lat ?>, <?= $lng ?>]).addTo(map)            .bindPopup('PHP से मार्कर');    </script></body></html>


3. जियोकोडिंग (पते को निर्देशांक में बदलना)



पते के अनुसार निर्देशांक प्राप्त करने के लिए API का उपयोग करें:



  • Nominatim (OpenStreetMap) — मुफ्त, लेकिन सीमाओं के साथ (प्रति सेकंड 1 अनुरोध)
  • Google Geocoding API — सीमा पार करने के बाद सशुल्क
  • Yandex Geocoder — रूस में लोकप्रिय


Nominatim के माध्यम से जियोकोडिंग का उदाहरण



<?phpfunction geocode($address) {    $url = "https://nominatim.openstreetmap.org/search?format=json&q=" . urlencode($address);    $opts = [        'http' => [            'method' => 'GET',            'header' => "User-Agent: MyApp/1.0\\r"                    

अनुशंसाएँ