2011-08-26 3 views
7

मैं एक जावा एप्लिकेशन लिखने की कोशिश कर रहा हूं, जिसमें एक शहर और त्रिज्या दिया गया है, सभी शहरों लौटाता है। मैंने सोचा कि Google मैप्स एपीआई ऐसा करने में सक्षम होगा, लेकिन मुझे प्लेस एपीआई के साथ कोई भाग्य नहीं मिल रहा है, यह सिर्फ ब्याज के अंक देता है (जैसे रेस्तरां, ...)। क्या Google एपीआई के साथ ऐसा करने का कोई तरीका है या क्या कोई अन्य एपीआई है (या ऐसा करने का तरीका) जिसे आप अनुशंसा करेंगे?किसी दिए गए स्थान के लिए आस-पास के शहरों को प्राप्त करने के लिए Google स्थल API का उपयोग करना

उत्तर

2

आप संभवतः सही हैं कि आप स्थान API का उपयोग नहीं करना चाहेंगे। आप यह देखना चाहते हैं कि आप जो चाहते हैं उसे प्राप्त करने के लिए जियोकोडिंग/रिवर्स जियोकोडिंग का उपयोग करने का कोई तरीका है या नहीं। http://code.google.com/apis/maps/documentation/geocoding/ देखें।

आपके प्रदर्शन और सटीकता आवश्यकताओं के आधार पर, आप Google मानचित्र API (या किसी अन्य निःशुल्क टूल) के साथ आसानी से ऐसा (विशेष रूप से वैश्विक रूप से) करने में सक्षम नहीं हो सकते हैं, लेकिन हो सकता है कि आप कुछ ऐसा प्राप्त कर सकें जो अधिकतर- काम करता है, खासकर यदि आपके पास भौगोलिक प्रतिबंध है (उदाहरण के लिए, केवल यूएस) जो चीजों को सरल बना सकता है।

3

मैं एक कोड का टुकड़ा आप और GeoNames.org एपीआई (एक file_get_contents अलावा गूगल मैप्स जियोकोडिंग API संयोजन से सभी पास के शहरों को पुनः प्राप्त करने की अनुमति देता है कि लिखा है अपने भी एक cURL अनुरोध कर सकता है)।

/* 
* Get cities based on city name and radius in KM 
*/ 

// get geocode object as array from The Google Maps Geocoding API 
$geocodeObject = json_decode(file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address={CITY NAME},{COUNTRY CODE}'), true); 

// get latitude and longitude from geocode object 
$latitude = $geocodeObject['results'][0]['geometry']['location']['lat']; 
$longitude = $geocodeObject['results'][0]['geometry']['location']['lng']; 

// set request options 
$responseStyle = 'short'; // the length of the response 
$citySize = 'cities15000'; // the minimal number of citizens a city must have 
$radius = 30; // the radius in KM 
$maxRows = 30; // the maximum number of rows to retrieve 
$username = '{YOUR USERNAME}'; // the username of your GeoNames account 

// get nearby cities based on range as array from The GeoNames API 
$nearbyCities = json_decode(file_get_contents('http://api.geonames.org/findNearbyPlaceNameJSON?lat='.$latitude.'&lng='.$longitude.'&style='.$responseStyle.'&cities='.$citySize.'&radius='.$radius.'&maxRows='.$maxRows.'&username='.$username, true)); 

// foreach nearby city get city details 
foreach($nearbyCities->geonames as $cityDetails) 
{ 
    // do something per nearby city 
} 

आपके अनुरोध राशि के साथ सावधान हो क्योंकि एपीआई एपीआई के दौरे के बारे में

सीमित हैं अधिक जानकारी के लिए निम्नलिखित यूआरएल के:

+1

यदि आपको लगता है कि यह प्रश्न एक डुप्लिकेट है, तो कृपया इसे इस तरह ध्वजांकित करें। उत्तर के रूप में अन्य स्टैक ओवरफ़्लो पोस्ट के लिंक पोस्ट न करें। – JAL

+0

ठीक है, जानना अच्छा है! मैंने सोचा कि अगर मैं हर जगह अपना उत्तर पोस्ट करता हूं तो इसे शायद एक डुप्लिकेट उत्तर के रूप में चिह्नित किया जा सकता है ... मैं जवाब संपादित करूँगा और किसी अन्य पोस्ट से लिंक नहीं करूंगा √ – 0x1ad2

संबंधित मुद्दे