안드로이드로 주변 편의점 검색하는 방법.
14883 단어 Android
Google Places API 사용 준비
먼저 Google API Constore에서 Places API를 사용할 준비가 되어 있습니다.방문Google API Console.
위 화면의 경우 기존 항목 중에서 선택하거나 항목을 작성할 수 있습니다.
이 화면이 아니면 다음 내용을 건너뛰세요.
왼쪽 열에서 API 를 클릭합니다.
Places API 항목을 찾아 OFF에서 ON으로 스위치를 변경합니다.
왼쪽 열에서 인증 정보를 클릭합니다.
브라우저 키를 선택합니다.
텍스트 상자가 비어 있을 때 만들기 단추를 누르십시오.
브라우저 키가 생성되므로 API 키를 기억하십시오.나중에 사용.
Google Place API를 사용하여 편의점 검색(Result JSON 다운로드)
API 키가 있으면 Google Places API를 사용할 수 있습니다.API 사용 방법에 대한 자세한 설명
참조여기..이곳에서 주변 편의점을 조립해 검색해 달라는 요청이 들어왔다.
다음 코드의 YOURAPI_방금 API 키를 KEY 섹션에 추가하십시오.
MainActivity.java (부분 발췌)
// ワーカースレッドにて
// URL生成(現在地を元に)
Location loc = LocationServices.FusedLocationApi.getLastLocation(sSelf.mGoogleApiClient);
double lat = loc.getLatitude();
double lng = loc.getLongitude();
StringBuilder urlStrBuilder = new StringBuilder("https://maps.googleapis.com/maps/api/place/search/json");
urlStrBuilder.append("?location=" + lat + "," + lng);
urlStrBuilder.append("&sensor=true&rankby=distance&types=convenience_store&key=YOUR_API_KEY");
URL u = new URL(urlStrBuilder.toString());
// APIを叩いてJSONをダウンロード
HttpURLConnection con = (HttpURLConnection) u.openConnection();
con.setRequestMethod("GET");
con.connect();
is = new BufferedInputStream(con.getInputStream());
String path = Environment.getExternalStorageDirectory() + "/tekitou/";
String fileName = "tekitou.json";
File dir = new File(path);
dir.mkdirs();
File outputFile = new File(dir, fileName);
FileOutputStream fos = new FileOutputStream(outputFile);
int bytesRead = -1;
byte[] buffer = new byte[1024];
while ((bytesRead = is.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fos.flush();
fos.close();
is.close();
상기 코드 (단말기의 외부 메모리)/tekitou/tekitou를 사용합니다.Response JSON을 json이라는 이름으로 저장합니다.Result JSON의 퍼스
JSON이 다운로드할 수 있다면 나머지는 깨끗이 정리하는 것뿐이다.
자바의 JSON에 있는 퍼스는 귀찮아서 먼저 예를 들자.참고로 하다.
(외부 라이브러리 [잭슨 사용]. 잭슨의 사용 방법에 대한 자세한 내용은 부기 사항을 참조하십시오.)
MainActivity.java (부분 발췌)
// ファイル読み込み
FileInputStream fileInputStream;
String path = Environment.getExternalStorageDirectory() + "/tekitou/";
String fileName = "tekitou.json";
File dir = new File(path);
File inputFile = new File(dir, fileName);
fileInputStream = new FileInputStream(inputFile);
byte[] readBytes = new byte[fileInputStream.available()];
fileInputStream.read(readBytes);
String json = new String(readBytes);
// JSONのパース with Jackson
ObjectMapper mapper = new ObjectMapper();
Object root = mapper.readValue(json, Object.class);
Map<?,?> rootMap = mapper.readValue(json, Map.class);
ArrayList nextArray = (ArrayList)rootMap.get("results");
mLatlngList = new ArrayList<LatLngName>();
for(int i =0; i < nextArray.size(); i++) {
Map<?, ?> thirdMap = (Map<?, ?>) nextArray.get(i);
Map<?, ?> forthMap = (Map<?, ?>) ((Map<?, ?>) thirdMap.get("geometry")).get("location");
Double lat = (Double) forthMap.get("lat");
Double lng = (Double) forthMap.get("lng");
String name = (String)thirdMap.get("name");
Log.i(TAG, "lat=" + lat + " lng=" + lng + " name=");
}
그게 다야.수고하셨습니다.
Reference
이 문제에 관하여(안드로이드로 주변 편의점 검색하는 방법.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kassy_kz/items/6909b68e01ee4c1147b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)