2015-12-21 26 views
12

में एपीआई सीमा बढ़ाएं मैं विशिष्ट स्थानों के लिए निर्देशांक प्राप्त करने के लिए R में लाइब्रेरी से geocode फ़ंक्शन का उपयोग करने का प्रयास कर रहा हूं। मैं अभी तक फ़ंक्शन ठीक का उपयोग करने में सक्षम हूं।ggmap के geocode फ़ंक्शन (आर में)

जिस मुद्दे में मैं दौड़ रहा हूं वह यह है कि मैं अपनी दैनिक सीमा 2,500 से 100,000 तक बढ़ाना चाहता हूं। आधिकारिक Google documentation कहता है कि यदि आप इस परियोजना पर बिलिंग सक्षम करते हैं, तो मुझे आसानी से संभव है, जो मुझे खुशी है। जब आप इस प्रक्रिया के साथ आगे बढ़ते हैं, तो Google Developers Console आपको व्यक्तिगत एपीआई कुंजी देता है।

हालांकि, geocode फ़ंक्शन में इस वैयक्तिकृत API कुंजी को रखने का विकल्प नहीं है। इसके बजाए, यह client (व्यावसायिक उपयोगकर्ताओं के लिए क्लाइंट आईडी) और signature (व्यावसायिक उपयोगकर्ताओं के लिए हस्ताक्षर) के लिए पूछता है, जो Google Maps API for Work ग्राहक एपीआई तक पहुंच सकते हैं। मुझे लगता है कि यह एक विकल्प भी है, लेकिन ऐसा लगता है कि काम के लिए Google मानचित्र एपीआई बड़े उद्यम खातों के लिए डिज़ाइन किया गया है:

दैनिक कोटा प्रति 24 घंटे 100,000 अनुरोधों से शुरू होता है, वार्षिक अनुबंध खरीद के आधार पर।

तो मेरे सवाल यह करने पर निर्भर करता है: मैं R में ggmaps पुस्तकालय से geocode फ़ंक्शन का उपयोग करें गूगल मैप्स जियोकोडिंग API पिंग करने कर सकते हैं?

उत्तर

4

मैं (ggmap पुस्तकालय से) मौजूदा geocode समारोह का उपयोग करने के लिए इस सवाल का जवाब देने के लिए एक रास्ता नहीं मिला, तो मैं बस एक नया कार्य बनाया सिर्फ इस अपने आप RCurl पुस्तकालय से मौजूदा getURL समारोह (का उपयोग कर ऐसा करने के लिए) और फ़ंक्शन (RJSONIO लाइब्रेरी से)।

नए कार्य को लिखें:

library(RJSONIO) 
library(RCurl) 

getGeoData <- function(location){ 
    location <- gsub(' ','+',location) 
    geo_data <- getURL(paste("https://maps.googleapis.com/maps/api/geocode/json?address=",location,"&key=**[YOUR GOOGLE API KEY HERE]**", sep="")) 
    raw_data_2 <- fromJSON(geo_data) 
    return(raw_data_2) 
} 

टेस्ट: getGeoData("San Francisco")

यह आपको एक ही डेटा है कि लगभग (लेकिन काफी नहीं) द्वारा निर्मित सूची के रूप में एक ही सटीक प्रारूप में साथ एक सूची प्रदान करती geocode("San Francisco")

5

इसके लिए धन्यवाद! इससे मुझे बहुत मदद मिली। आपका समाधान बहुत विशिष्ट है, इसलिए मैं आपके फ़ंक्शन से किए गए अनुकूलन को शामिल करना चाहता था। इसने बग फेंक दिया क्योंकि raw_data और geo_data_list अपरिभाषित हैं। मुझे लगता है कि ये आपके स्थानीय पर्यावरण के लिए विशिष्ट थे।

मेरे लिए, एक स्थान inputting और अक्षां लौटने, देशा इस के साथ काम किया:

getGeoData <- function(location, api_key){ 
    location <- gsub(' ','+',location) 
    geo_data <- getURL(paste("https://maps.googleapis.com/maps/api/geocode/json?address=",location,sprintf("&key=%s",api_key), sep="")) 
    geo_data <- fromJSON(geo_data) 
    return(geo_data$results[[1]]$geometry$location) 
} 

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

उम्मीद है कि यह किसी की मदद करेगा।

आर

8

मैं पैकेज googleway गूगल मैप्स एपीआई जहाँ आप अपने API कुंजी निर्दिष्ट कर सकते हैं तक पहुँचने के लिए लिखा है।

उदाहरण

library(googleway) 

key <- "your_api_key" 

google_geocode(address = "San Francisco", 
       key = key) 

# $results 
# address_components 
# 1 San Francisco, San Francisco County, California, United States, SF, San Francisco County, CA, US, locality, political, administrative_area_level_2, political, administrative_area_level_1, political, country, political 
# formatted_address geometry.bounds.northeast.lat geometry.bounds.northeast.lng geometry.bounds.southwest.lat 
# 1 San Francisco, CA, USA      37.92977      -122.3279      37.69313 
# geometry.bounds.southwest.lng geometry.location.lat geometry.location.lng geometry.location_type 
# 1      -123.1661    37.77493    -122.4194   APPROXIMATE 
# geometry.viewport.northeast.lat geometry.viewport.northeast.lng geometry.viewport.southwest.lat 
# 1       37.812      -122.3482       37.7034 
# geometry.viewport.southwest.lng     place_id    types 
# 1      -122.527 ChIJIQBpAG2ahYAR_6128GcTUEo locality, political 
# 
# $status 
# [1] "OK" 
7

ggmap संस्करण 2.7 या अधिक से अधिक (के साथ के लिए 13 दिसंबर, के रूप में अभी तक Cran पर उपलब्ध नहीं है, लेकिन आप devtools::install_github("dkahle/ggmap") साथ स्थापित कर सकते हैं, तो आप बस register_google(key = 'LONG KEY STRING') चलाने की आवश्यकता है और फिर आप किसी भी कॉल कर सकते हैं ggmap फ़ंक्शंस जैसे geocode या mutate_geocode और अपनी एपीआई कुंजी का उपयोग करें।

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