[php] تحويل خط العرض / خط الطول إلى اسم المدينة؟ (عكس جيولوكاتينغ)



Answers

مصادر مجانية (على سبيل المثال المشاع الإبداعي)

Geonames

إذا كنت تبحث عن مصادر مجانية (كحرية)، فيمكنك استخدام أبي جيونامس أبي فيندرينينبليسنام.

على سبيل المثال العائدات التالية الأقرب بلاسينام:

http://api.geonames.org/findNearbyPlaceName؟lat=47.3&lng=9&username=demo

يتوفر مزيد من المعلومات هنا

http://www.geonames.org/export/web-services.html#findNearbyPlaceName

فريبيس

بدلا من نقطة واحدة فإنه يأخذ مربع مقيدة. نموذج الاتصال:

http://api.freebase.com/api/service/geosearch؟location=[30.2،50.4،30.6،50.8]&location_type=/location/citytown&inside=true&indent=1

Geocoder.ca

عكس الترميز الجغرافي لعناوين أمريكا الشمالية.

معلومات: http://geocoder.ca/

نموذج للاتصال: http://geocoder.ca/؟latt=40.70771000786733&longt=-74.0109443664550&reverse=1&allna=1&geoit=xml&corner=1&jsonp=1&callback=test

خريطة كويست أبي

باستخدام فتح شارع خريطة خدمة نوميناتيم:

http://open.mapquestapi.com/nominatim/v1/search؟q=50.4،30.4&format=json

مصادر غير مجانية

ياهو بلاسفيندر

الوثائق http://developer.yahoo.com/geo/placefinder/

نموذج المكالمة:

http://where.yahooapis.com/geocode؟q=38.898717،+-77.035974&gflags=R&appid=[yourappidhere]

واجهة برمجة تطبيقات خرائط غوغل

كابل بيانات:

http://code.google.com/apis/maps/documentation/geocoding/#ReverseGeocoding

Question

أنا أعمل على لوحة عمل في كودينيتر فب + مسج حيث أرباب العمل دخول موقعهم ونحن نستخدم خرائط جوجل أبي لرسم ذلك. في حين أن هذا كان نتائج رهيبة الاستخدام، والمشكلة هي عندما نحاول عرض هذه المواقع للباحثين عن عمل أنها مشوشة وصعبة لفحص بصريا (قرأوا مثل هذا: "02905، 2 ميلا"، "171 جون سانت، 4 على بعد أميال "،" بروفيدنس، ري، على بعد 10 أميال ".

أريد أن أكون قادرا على عكس جيولوكيت من خط الطول / خط العرض إلى مستوى مجموعة (من الناحية المثالية، اسم المدينة) بحيث في نتائج البحث يمكن أن يكون لها مواقع مدرجة مثل هذا: "بروفيدنس، ري، 10 أميال"، " بروفيدنس، ري، على بعد 5 أميال "،" كرانستون، ري، 16 ميلا ".

هل هناك طريقة لعكس الترميز الجغرافي إلى المدينة؟ أرى العديد من الأمثلة على طرق لعكس الترميز الجغرافي إلى أقرب مكان يمكن معالجتها، ولكن لا توجد وسيلة للسيطرة على المستوى.

نأمل أن يكون ذلك واضحا! لا تتردد في التعليق مع أي أسئلة تحتاج إلى توضيح على.




وستعمل خدمات الترميز الجغرافي العكسية (مثل غوغل و ياهو و جيونامس) بشكل جيد لهذا الغرض مع بعض التحذيرات:

  • على الرغم من أنني لا أستطيع أن أقول على وجه اليقين كيف تعمل الخدمات التجارية، في المرة الأخيرة راجعت جيونامس يستخدم أقرب نقطة استراتيجية الفائدة لتحديد المدينة. يمكن أن يكون هذا مشكلة إذا كانت نقطة الاستعلام الخاصة بك قريبة نوعا ما من الحدود بين مدينتين وأقرب إدخال في قاعدة بيانات جيونامس على الجانب الآخر من ذلك الحد. هذا يحدث فعلا قليلا قليلا في تجربتي، لذلك هذا ليس فقط بعض التقنية.
  • أيضا، إذا كنت قلقا بشأن تجربة المستخدم، فإن أي حل أبي ويب يضيف الكمون ويقلل من الموثوقية.

أقوم بتشغيل موقع ويب يقدم عددا من واجهات برمجة تطبيقات الويب الجغرافية التجارية، ويبيع مكتبات جافا التي أنشأناها لدعم واجهات برمجة التطبيقات هذه. واحد منهم (الذي لديه تغطية الولايات المتحدة فقط) يستخدم خريطة مضلعة المناسبة من المدن والبلدات في الولايات المتحدة للعودة النتيجة التي تحتوي على نقطة الاستعلام الخاص بك. أنها دقيقة وسريعة، لذلك إذا كان هذا هو عنصر حاسمة مهمة في النظام الخاص بك، وأنا أقترح إلقاء نظرة على موقعنا على شبكة الإنترنت:

http://askgeo.com

الصفحة الخاصة بالبحث عن المدن من خطوط الطول / الطول هي:

http://askgeo.com/database/UsPlace2010




يتطلب تحديد الموقع الجغرافي Html5 إذنا للمستخدم. إذا كنت لا تريد هذا السلوك، يمكنك الذهاب لموفر خارجي مثل https://geoip-db.com . أنها توفر خدمة تحديد الموقع الجغرافي مجانا على أساس عناوين إب.

جرب هذا المثال:

<!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Geo City Locator</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
</head> 
<body > 
    <div>Country: <span id="country"></span></div>
    <div>State: <span id="state"></spa></div>
    <div>City: <span id="city"></span></div>
    <div>Latitude: <span id="latitude"></span></div>
    <div>Longitude: <span id="longitude"></span></div>
    <div>IP: <span id="ip"></span></div>    
    <script>
      $.getJSON('https://geoip-db.com/json/geoip.php?jsonp=?') 
         .done (function(location) {
            $('#country').html(location.country_name);
            $('#state').html(location.state);
            $('#city').html(location.city);
            $('#latitude').html(location.latitude);
            $('#longitude').html(location.longitude);
            $('#ip').html(location.IPv4);               
         });
    </script>
</body> 
</html> 



Links