दिलचस्प पोस्ट
नोडजेएस में मोंगो डेटाबेस में सम्मिलित दस्तावेज के _id प्राप्त करें डीजेन्गो – एक सूची को एक क्वेरी में वापस परिवर्तित करें सी # दो सामान्य मूल्यों की तुलना करें हो सकता है कि जावास्क्रिप्ट में वक्तव्य के भीतर घोषणाएं हो सकती हैं? IPhone पर उद्देश्य-सी का उपयोग कर WCF वेब सेवा का उपयोग करें गतिशील रूप से नए तत्वों को जोड़ने के बाद jQuery चयनकर्ता अद्यतन नहीं करता है ओरेकल एसक्यूएल डेवलपर में सीएसवी के लिए क्वेरी परिणाम कैसे निर्यात करें? दोनों ओर क्षैतिज रेखा के साथ शीर्षक स्ट्रिंग को bool के साथ int को परिवर्तित करें / C ++ में विफल सबसे तेज जावा स्क्रिप्ट एंड्रॉइड एसडीके मैनेजर खुला नहीं होगा जावास्क्रिप्ट का उपयोग कर सेलेनियम वेबड्राइवर में एक तत्व को कैसे क्लिक करें iphone में सर्वर पर छवि पोस्ट करें javafx listview और treeview नियंत्रण सही ढंग से repainted नहीं हैं जब सी + + मैक्रोज़ फायदेमंद होते हैं?

यदि Google मानचित्र में कोई बिंदु भूमि या पानी है तो सत्यापित करें

..और फिर Google- नक्शे "पानी से जल विभाजित"

ठीक है, बाइबिल के अर्थ में नहीं बल्कि ..

मैं यह जानना चाहूंगा कि मेरे पास कौन से विकल्प हैं, ताकि यह सत्यापित किया जा सके कि क्या [लाट, लोन] भूमि या पानी का एक बिंदु है

गूगल मैप्स के पास जाहिर डेटा है (पानी के श्वेत नीले होते हैं) – लेकिन क्या एपीआई में कुछ है जो मैं इसका इस्तेमाल कर सकता हूं? और यदि नहीं – क्या वे इसकी सेवा नहीं कर रहे हैं क्योंकि उन्होंने कभी इसके बारे में सोचा नहीं था? या क्योंकि यह बहुत जटिल है?

मुझे इस मामले पर कोई जानकारी नहीं मिली – कुछ समान प्रश्नों को छोड़कर (यहां तक ​​कि इलाके के प्रकार को खोजना, या उन्नयन – लेकिन यह बिल्कुल ठीक नहीं है कि मुझे क्या चाहिए)।

क्या इसके लिए अलग परत है? एक विकल्प? कमान? या मुझे वह मैन्युअल रूप से करना चाहिए?

एकमात्र तरीका है कि मैं कैसे इस दृष्टिकोण के बारे में सोच सकता हूँ (मुझे मैन्युअल रूप से करने की आवश्यकता होनी चाहिए) सटीक बिंदु के लिए हर सेवा की टाइल की जांच करना है – और फिर उस Google मानचित्र रंग के लिए आरजीबी मूल्य की जांच करें। यह केवल सिद्धांत पर है – क्योंकि व्यवहार में – मुझे यह नहीं पता कि यह कैसे पूरा करना है, पहली बाधा यह है कि मैं नहीं जानता कि मैं कैसे टाइल पर एक पिक्सेल स्थान को [लाटलोन] बिंदु के रूप में परिवर्तित कर सकता हूँ उदाहरण के लिए

एक तैयार किया समाधान बहुत आसान होगा

ध्यान दें कि मुझे दुनिया में सभी पानी की ज़रूरत नहीं है (उदाहरण के लिए – मुझे नदियों, छोटे तालाबों, अधिकांश नदियों या अपने पड़ोसी के स्विमिंग पूल की परवाह नहीं है। मुझे उन बिंदुओं की ज़रूरत है जहां कोई व्यक्ति अस्थायी वाहन की सहायता के बिना वेंचर कर सकता है )

संपादित करें I

टिप्पणियां पढ़ने के बाद: ऊंचाई विधि भरोसेमंद नहीं है, समुद्र के स्तर के नीचे बहुत सारे स्थान हैं (आप यहां "गहनतम" 10 की एक सूची देख सकते हैं http://geology.com/below-sea-level/ ) और वहां समुद्र तल (झीलों) के ऊपर बहुत अधिक भूमि-लॉक जल निकायों हैं रिवर्स जियोलोकेशन विधि विश्वसनीय नहीं है क्योंकि यह एक भौगोलिक-राजनीतिक इकाई, जैसे शहर, या राज्य – या ज़ोरो कई बार वापस आ जाएगी। मैंने सवाल पूछने से पहले ही उन छद्म-समाधानों पर गौर किया है – लेकिन उनमें से कोई भी वास्तव में इस प्रश्न का उत्तर नहीं देता – ये विधियां सर्वश्रेष्ठ पर "अनुमान लगाना"

वेब के समाधान से एकत्रित समाधान "यदि Google मानचित्र में कोई बिंदु भूमि या पानी है तो सत्यापित करें"

ये 2 अलग-अलग तरीके हैं, आप कोशिश कर सकते हैं:

  • आप Google मैप्स रिवर्स जियोकोडिंग का उपयोग कर सकते हैं। परिणामस्वरूप सेट आप निर्धारित कर सकते हैं कि क्या यह types जांच कर पानी है। जल के मामले में प्रकार natural_feature इस लिंक http://code.google.com/apis/maps/documentation/geocoding/#Types पर अधिक देखें

    इसके अलावा आपको सुविधाओं के नामों की जांच करनी होगी, यदि वे Sea, Lake, Ocean और अधिक सटीकता के लिए पानी से संबंधित कुछ अन्य शब्द शामिल हैं। उदाहरण के लिए रेगिस्तान भी natural_feature

    Prons – ग्राहक की मशीन पर सभी पहचान प्रक्रिया पूरी की जाएगी। स्वयं की सर्वर साइड सेवा बनाने की कोई ज़रूरत नहीं है।

    विपक्ष – बहुत गलत और संभावना है कि आपको पानी पर "कोई नहीं" मिलेगा बहुत अधिक है

  • Google स्टेटिक मैप्स का उपयोग करके आप पिक्सेल द्वारा जल / भूमि का पता लगा सकते हैं। लेकिन इस उद्देश्य के लिए आपको http सेवा बनाने की आवश्यकता है

    ये कदम आपकी सेवा को करना चाहिए:

    1. ग्राहक से latitude , longitude और current zoom प्राप्त करें
    2. http://maps.googleapis.com/maps/api/staticmap?center={ अक्षांश , देशांतर }&zoom={ वर्तमान }&zoom={ }} और आकार = 1×1 & maptype = roadmap & sensor = Google स्थैतिक मानचित्र सेवा के लिए झूठे अनुरोध भेजें।
    3. 1×1 स्थिर छवि का पिक्सेल का रंग पता लगाएं।
    4. पता लगाने के बारे में एक सूचना का उत्तर दें

    आप क्लाइंट साइड में पिक्सेल के रंग का पता लगा सकते हैं हां, आप क्लाइंट की मशीन पर स्थिर छवि लोड कर सकते हैं और canvas तत्व पर चित्र खींच सकते हैं। लेकिन आप पिक्सेल का रंग पाने के लिए कैनवास के संदर्भ के getImageData का उपयोग नहीं कर सकते यह क्रॉस डोमेन नीति द्वारा प्रतिबंधित है

    Prons – अत्यधिक सटीक पहचान

    विपक्ष – पहचान के लिए अपने सर्वर संसाधनों का उपयोग करें

यह किसी भी मौजूदा Google सेवा के साथ संभव नहीं लगता है

लेकिन अन्य सेवाएं हैं, जैसे कोर्डिनेट्स वेक्टर जेसन क्वेरी सेवा ! आप बस यूआरएल में डेटा की जांच करते हैं, और आप एक JSON / XML प्रतिक्रिया वापस लेते हैं

उदाहरण अनुरोध: http://api.koordinates.com/api/vectorQuery.json?key=YOUR_GEODATA_KEY&layer=1298&x=-159.9609375&y=13.239945499286312&max_results=3&radius=10000&geometry=true&with_field_names=true

आपको अपनी कुंजी और चयनित परत नंबर को पंजीकृत और आपूर्ति करना होगा। आप उपलब्ध परतों के सभी रिपॉजिटरी खोज सकते हैं अधिकांश परतें केवल क्षेत्रीय हैं, लेकिन आप वर्ल्ड कोस्टलाइन की तरह वैश्विक भी पा सकते हैं:

यहां छवि विवरण दर्ज करें

जब आप एक परत चुनते हैं, तो आप "सेवा" टैब पर क्लिक करते हैं, आपको उदाहरण अनुरोध यूआरएल मिलता है। मेरा मानना ​​है कि आपको बस पंजीकरण की आवश्यकता है और यही है!

और अब सबसे अच्छा:

आप अपना परत अपलोड कर सकते हैं!

यह अभी उपलब्ध नहीं है, अरे किसी भी तरह से इसे संसाधित करना है, लेकिन यह काम करना चाहिए! परत रिपॉजिटरी वास्तव में दिखता है जैसे लोगों को उन्हें आवश्यकतानुसार अपलोड किया गया था।

यह जो मैं का उपयोग करता हूं और यह बहुत बुरा काम नहीं कर रहा है … यदि आपके पास अधिक सीपीयू पिक्सल जोड़ कर बर्बाद हो तो परीक्षा में सुधार कर सकते हैं।

 function isItWatter($lat,$lng) { $GMAPStaticUrl = "https://maps.googleapis.com/maps/api/staticmap?center=".$lat.",".$lng."&size=40x40&maptype=roadmap&sensor=false&zoom=12&key=YOURAPIKEY"; //echo $GMAPStaticUrl; $chuid = curl_init(); curl_setopt($chuid, CURLOPT_URL, $GMAPStaticUrl); curl_setopt($chuid, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($chuid, CURLOPT_SSL_VERIFYPEER, FALSE); $data = trim(curl_exec($chuid)); curl_close($chuid); $image = imagecreatefromstring($data); // this is for debug to print the image ob_start(); imagepng($image); $contents = ob_get_contents(); ob_end_clean(); echo "<img src='data:image/png;base64,".base64_encode($contents)."' />"; // here is the test : I only test 3 pixels ( enough to avoid rivers ... ) $hexaColor = imagecolorat($image,0,0); $color_tran = imagecolorsforindex($image, $hexaColor); $hexaColor2 = imagecolorat($image,0,1); $color_tran2 = imagecolorsforindex($image, $hexaColor2); $hexaColor3 = imagecolorat($image,0,2); $color_tran3 = imagecolorsforindex($image, $hexaColor3); $red = $color_tran['red'] + $color_tran2['red'] + $color_tran3['red']; $green = $color_tran['green'] + $color_tran2['green'] + $color_tran3['green']; $blue = $color_tran['blue'] + $color_tran2['blue'] + $color_tran3['blue']; imagedestroy($image); var_dump($red,$green,$blue); //int(492) int(570) int(660) if($red == 492 && $green == 570 && $blue == 660) return 1; else return 0; } 

इस लेख को चेक करें यह सही ढंग से पता लगाता है कि कोई सर्वर की जरूरत के बिना पानी पर कुछ है यह एक ऐसा हैक जो Google मानचित्र में कस्टम स्टाइल सुविधा पर निर्भर करता है।

http://tech.bellycard.com/blog/where-d-the-water-go-google-maps-water-pixel-detection-with-canvas/

मैंने सोचा कि यह स्थानीय रूप से यह क्वेरी करने के लिए और अधिक दिलचस्प है, इसलिए मैं और अधिक आत्मनिर्भर हो सकता हूं: मान लीजिए कि मैं एक बार में 25000 यादृच्छिक भूमि निर्देशांक उत्पन्न करना चाहता हूं, मैं संभवतया महंगा बाह्य एपीआई को कॉल से बचना चाहता हूं। यहां अजगर में इस पर मेरा शॉट है, टॉमस्चब्रर द्वारा जिक्र अजगर उदाहरण का उपयोग करते हुए असल में यह एक पूर्वनिर्मित 350 एमबी फ़ाइल के निर्देशांक को देखता है जिसमें सभी भूमि निर्देशांक शामिल हैं, और यदि वहां मौजूद निर्देशांक मौजूद हैं, तो उन्हें प्रिंट करता है।

 import ogr from IPython import embed import sys drv = ogr.GetDriverByName('ESRI Shapefile') #We will load a shape file ds_in = drv.Open("land_polygons.shp") #Get the contents of the shape file lyr_in = ds_in.GetLayer(0) #Get the shape file's first layer #Put the title of the field you are interested in here idx_reg = lyr_in.GetLayerDefn().GetFieldIndex("P_Loc_Nm") #If the latitude/longitude we're going to use is not in the projection #of the shapefile, then we will get erroneous results. #The following assumes that the latitude longitude is in WGS84 #This is identified by the number "4236", as in "EPSG:4326" #We will create a transformation between this and the shapefile's #project, whatever it may be geo_ref = lyr_in.GetSpatialRef() point_ref=ogr.osr.SpatialReference() point_ref.ImportFromEPSG(4326) ctran=ogr.osr.CoordinateTransformation(point_ref,geo_ref) def check(lon, lat): #Transform incoming longitude/latitude to the shapefile's projection [lon,lat,z]=ctran.TransformPoint(lon,lat) #Create a point pt = ogr.Geometry(ogr.wkbPoint) pt.SetPoint_2D(0, lon, lat) #Set up a spatial filter such that the only features we see when we #loop through "lyr_in" are those which overlap the point defined above lyr_in.SetSpatialFilter(pt) #Loop through the overlapped features and display the field of interest for feat_in in lyr_in: # success! print lon, lat check(-95,47) 

मैंने एक दर्जन निर्देशांक की कोशिश की, यह अद्भुत काम करता है "Land_polygons.shp" फाइल को यहां डाउनलोड किया जा सकता है , निश्चित मैप्स के प्रशंसा (मैंने अपने पहले डब्ल्यूजीएस 84 डाउनलोड लिंक का प्रयोग किया, शायद दूसरी काम भी)

रिवर्स जियोओकोडिंग के अतिरिक्त- डॉ। मोले ने बताया है कि यह ज़राभाषाओं को लौटा सकता है – आप ऊँचाई सेवा का उपयोग कर सकते हैं यदि आप रिवर्स जियोओकोडिंग द्वारा शून्य परिणाम प्राप्त करते हैं, तो स्थान की ऊंचाई प्राप्त करें आम तौर पर समुद्र को ऋणात्मक संख्या मिलती है क्योंकि समुद्र के नीचे समुद्र तल से नीचे है। http://www.daftlogic.com/sandbox-google-maps-find-altitude.htm पर ऊंचाई सेवा का एक पूर्णतः काम किया उदाहरण है

इस बात को ध्यान में रखें कि Google इस जानकारी को अन्य तरीके से उपलब्ध नहीं करता है, सिर्फ एक अनुमान है और अनुमान स्वाभाविक रूप से गलत है। हालांकि रिवर्स जियोओकोडिंग द्वारा दिए गए type का उपयोग करते हुए, या यदि type उपलब्ध नहीं है तो ऊँचाई, सबसे संभावित घटनाओं को कवर करेंगे।

अगर सब कुछ विफल रहता है तो आप बिंदु पर ऊंचाई की जांच करने और कुछ दूरी के बारे में हमेशा जांचने की कोशिश कर सकते हैं – पानी के अलावा अन्य चीजें पूरी तरह से सपाट नहीं होती हैं

यह विधि पूरी तरह से अविश्वसनीय है। वास्तव में, लौटा हुआ डेटा पूरी तरह से आपके साथ काम कर रहे दुनिया के किस भाग पर निर्भर करेगा। उदाहरण के लिए, मैं फ्रांस में काम कर रहा हूं अगर मैं फ्रांस के समुद्र तट पर समुद्र पर क्लिक करता हूं, तो Google निकटतम भूमि स्थान लौटाएगा जो इसे "अनुमान" कर सकता है जब मैंने इस प्रश्न के लिए Google से जानकारी का अनुरोध किया, तो उन्होंने जवाब दिया कि वे सही तरीके से वापस नहीं लौट सकते हैं, जो कि पानी के द्रव्यमान में अनुरोधित बिंदु है।

एक बहुत ही संतोषजनक उत्तर नहीं, मुझे पता है यह काफी निराशाजनक है, खासकर उन लोगों के लिए जिन्होंने उपयोगकर्ता को मार्कर की स्थिति को परिभाषित करने के लिए नक्शे पर क्लिक करने की क्षमता प्रदान की है।

मैंने Google एलीपमेंट एपीआई का उपयोग करके काफी करीब पहुंचने में कामयाबी हासिल की यहां परिणामों की एक छवि है:

परिणाम का स्क्रीनशॉट

आप देख सकते हैं कि हेक्सागोन भूमि पर बहुत ज्यादा रहने के बावजूद एक आयताकार परिधि को परिभाषित किया गया है जो आंशिक रूप से पानी पर होता है। इस मामले में मैंने Google मैप्स से एक त्वरित जांच की और भूमि पर न्यूनतम ऊंचाई लगभग 8-9 मीटर थी इसलिए मेरा दहलीज था। इस कोड को ज्यादातर Google दस्तावेज़ और स्टैक ओवरफ़्लो से कॉपी / चिपकाया जाता है, यहां पूर्ण संहिता है:

https://gist.github.com/dvas0004/fd541a0502528ebfb825

एक मुफ्त वेब एपीआई है जो कि वास्तव में इस समस्या को आह्वान करता है onwater.io यह Google नक्शे में निर्मित कुछ नहीं है, लेकिन अक्षांश और देशांतर को दिया जाता है, यह प्राप्त अनुरोध के जरिए सही या झूठी सटीकता वापस करेगा।

पानी पर उदाहरण: https://api.onwater.io/23.92323,663

 { lat: 23.92323, lon: -66.3, water: true } 

भूमि पर उदाहरण: https://api.onwater.io/42.35,-71.1

 { lat: 42.35, lon: -71.1, water: false } 

पूर्ण प्रकटीकरण मैं डॉकवा डॉट कॉम में काम करता हूं , जो कि पानी के नीचे की कंपनी है हम इस समस्या को हल करने के लिए पानी पर पानी बनाते हैं और समुदाय की मदद करते हैं। यह हमेशा उपयोग करने के लिए स्वतंत्र है और हम साझा करना चाहते थे 🙂

दुर्भाग्य से यह उत्तर Google मानचित्र एपीआई के भीतर नहीं है और संदर्भित संसाधन मुफ्त नहीं है, लेकिन GetWaterOrLand द्वारा प्रदान की जाने वाली एक वेब सेवा है जो ऑपरेशन GetWaterOrLand खुलासा करती है और जो अक्षांश / रेखांकित युग्म को स्वीकार करती है ( आप यहां एक डेमो देख सकते हैं )।

यह कैसे लागू किया जाता है की मेरी समझ जल शरीर आकार फ़ाइलों का उपयोग कर है Google मानचित्र API के साथ इन आकार फ़ाइलों का उपयोग कैसे किया जाता है, लेकिन आप लिंक किए गए डेमो से कुछ अंतर्दृष्टि प्राप्त कर सकते हैं।

उम्मीद है कि किसी भी तरह से मदद करता है

यहां शुद्ध जावास्क्रिप्ट में एक और उदाहरण है: http://jsfiddle.net/eUwMf/

जैसा कि आप देख सकते हैं, विचार मूलतः रीबे 100x के समान है, Google स्थैतिक मानचित्र एपीआई से छवि प्राप्त करना, और पहले पिक्सेल को पढ़ें:

 $("#xGps, #yGps").change(function() { var img = document.getElementById('mapImg'); // Bypass the security issue : drawing a canvas from an external URL. img.crossOrigin='anonymous'; var xGps = $("#xGps").val(); var yGps = $("#yGps").val(); var mapUrl = "http://maps.googleapis.com/maps/api/staticmap?center=" + xGps + "," + yGps + "&zoom=14&size=20x20&maptype=roadmap&sensor=false"; // mapUrl += "&key=" + key; $(img).attr("src", mapUrl); var canvas = $('<canvas/>')[0]; canvas.width = img.width; canvas.height = img.height; canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height); var pixelData = canvas.getContext('2d').getImageData(1, 1, 1, 1).data; if (pixelData[0] == 164 && pixelData[1] == 190 && pixelData[2] == 220) { $("#result").html("Water"); } else { $("#result").html("Not water"); } }); 

मैंने एक समान प्रश्न के उत्तर को देखें – यह समारोह प्राप्त करने के लिए पृथ्वी एपीआई से "HIT_TEST_TERRAIN" का उपयोग करता है।

इस विचार का एक उदाहरण है, जिसे मैंने एक साथ रखा है: http://www.msa.mmu.ac.uk/~fraser/ge/coord/

मैं अपनी खुद की यहाँ रोलिंग की सिफारिश करेगा आप एक आकार फाईल में एक बिंदु के तहत सामग्री को क्वेरी करने के लिए GDAL जैसे उपकरण का उपयोग कर सकते हैं। आप अमेरिका के जनगणना ब्यूरो सहित कई स्रोतों से यू.एस. भूगोल के लिए आकृतिपत्र प्राप्त कर सकते हैं।

इसे जीडीएएल बायनेरिज़, स्रोत सी या जावा, पायथन, और अधिक में स्विंग के माध्यम से किया जा सकता है।

जनगणना मानचित्र

जीडीएएल सूचना

पायथन में प्वाइंट क्वेरी उदाहरण

यहाँ एक सरल समाधान है

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


यांडेक्स दस्तावेज़ीकरण: https://api.yandex.com.tr/maps/doc/geocoder/desc/concepts/input_params.xml


महासागर नाम को प्राप्त करने के लिए चरण:

1.) जीओकेड को समन्वयित करने के लिए पहले Google का उपयोग करें।

2.) अगर Google ने शून्य परिणाम निकाल दिए हैं, तो 99% संभावना है कि एक महासागर पर स्थित समन्वय होता है। अब एक समान निर्देशांक के साथ एक द्वितीयक रिवर्स जियोओकोडिंग अनुरोध बनाओ Yandex यैंडेक्स सटीक निर्देशांक के लिए एक JSON प्रतिक्रिया देगा, इस प्रतिक्रिया के भीतर दो "कुंजी" होंगे: महत्व का "मूल्य" जोड़े

 ["GeoObject"]["metaDataProperty"]["GeocoderMetaData"]["kind"] and ["GeoObject"]["name"] 

दयालु कुंजी की जाँच करें, अगर यह == "हाइड्रो" आप जानते हैं कि आप पानी के ऊपर हैं, और क्योंकि Google ने शून्य परिणाम निकाल दिए हैं, तो 99.99% संभावना है कि यह शरीर एक सागर है। महासागर का नाम ऊपर "नाम" कुंजी होगा

यहां एक उदाहरण है कि मैं रूबी में लिखा गया इस रणनीति का उपयोग कैसे करता हूं

 if result.data["GeoObject"]["metaDataProperty"]["GeocoderMetaData"]["kind"] == "hydro" ocean = result.data["GeoObject"]["name"] end 

पानी के नाम का अंतर्देशीय निकाय प्राप्त करने के लिए कदम:

इस उदाहरण के लिए हमारे समन्वय कहीं झील में निहित है:

1.) जीओकेड को समन्वयित करने के लिए पहले Google का उपयोग करें।

2.) Google नतीजा होगा कि नतीजे के पास जमीन पर एक प्रमुख डिफ़ॉल्ट पता है। इस परिणाम में यह वापस दिए गए पते के निर्देशांक प्रदान करता है, यह समन्वय आपके द्वारा प्रदान किए गए एक से मेल नहीं खाएगा। यदि आपने निर्दिष्ट समन्वय के बीच की दूरी को मापते हैं और परिणाम के साथ वापस आते हैं, तो यदि यह काफी अलग है (उदाहरण के लिए 100 गज) तो यांडेक्स के साथ द्वितीयक बैकअप अनुरोध करें और "प्रकार" कुंजी के मूल्य को देखने के लिए जांचें, अगर यह "हाइड्रो" है तो आप जानते हैं कि समन्वय पानी पर है। क्योंकि Google ने ऊपर दिए गए उदाहरण के विरोध के परिणामस्वरूप, परिणामस्वरूप 99.99% संभावना है कि यह पानी का अंतर्देशीय शरीर है, इसलिए अब आप नाम प्राप्त कर सकते हैं। यदि "प्रकार" नहीं == "हाइड्रो" तो Google भौगोलिक ऑब्जेक्ट का उपयोग करें।

 ["GeoObject"]["metaDataProperty"]["GeocoderMetaData"]["kind"] and ["GeoObject"]["name"] 

Inland_body_of_water प्राप्त करने के लिए यहां रूबी में लिखा गया एक ही कोड है

 if result.data["GeoObject"]["metaDataProperty"]["GeocoderMetaData"]["kind"] == "hydro" inland_body_of_water = result.data["GeoObject"]["name"] end 

लाइसेंसिंग के बारे में एक नोट: जहां तक ​​मुझे पता है कि Google आपको Google डेटा के अलावा अन्य किसी भी नक्शे पर प्रदर्शित करने के लिए अपने डेटा का उपयोग करने की अनुमति नहीं देता है यैंडेक्स में बहुत लचीला लाइसेंसिंग है, और आप Google मानचित्र पर प्रदर्शित होने के लिए अपने डेटा का उपयोग कर सकते हैं।

इसके अलावा यैंडेक्स में 50,000 अनुरोध / दिन निशुल्क शुल्क की उच्च दर सीमा है, और कोई आवश्यक एपीआई कुंजी नहीं है।

अगर List<Address> पता रिटर्न 0 है, तो आप इस स्थान को सागर या प्राकृतिक संसाधन के रूप में मान सकते हैं। बस अपनी प्रतिक्रिया में नीचे दिए गए कोड में जोड़ें Google Places एपीआई रिस्पांस की विधि।

उल्लिखित सूची के रूप में उल्लिखित

List<Address> addresses = geocoder.getFromLocation(latLng.latitude, latLng.longitude, 1);

if (addresses.size()==0) { Toast.MakeText(getApplicationContext,"Ocean or Natural Resources selected",Toast.LENGTH_SHORT).show(); }else{ }

मेरे पास यहां एक अलग समाधान है वर्तमान गूगल मानचित्र कार्यान्वयन में, यह पानी के स्थान से जमीन स्थान तक दिशा / दूरी की गणना नहीं करता है और इसके विपरीत। क्यों यह निर्धारित करने के लिए हम इस तर्क का उपयोग न करें कि क्या मुद्दा भूमि या पानी है

उदाहरण के लिए, यह उदाहरण लेता है

अगर हम यह निर्धारित करना चाहते हैं, यदि कोई बिंदु x भूमि या पानी है, तो

हमें बिंदु x और ज्ञात बिंदु y बीच की दिशा की जांच करें जो भूमि है। यदि यह दिशा / दूरी तय करता है तो बिंदु x जमीन है या फिर यह पानी है।