커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
685
865
3,878
3,524,376
  현재접속자 : 37 (회원 0)






배너 신청 문의

 
작성일 : 16-01-15 18:31
[QT/Win32] Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사용하기
 글쓴이 : starbig
조회 : 4,429   추천 : 0  
   http://www.podovat.com/?p=523 [550]
   https://developers.daum.net/ [481]
이 글은 제가 podovat.com의 blog 올린글 ( http://www.podovat.com/?p=523 )에서 퍼온것입니다.

Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사용하기 입니다.


1. Api Key 발급

먼저 Daum geo service를 사용하기 위해 Daum Api Key를 발급받아야합니다.
( https://developers.daum.net/ )



2. 요청주소 (Request URL)

https://apis.daum.net/local/geo/addr2coord



3. 요청 변수 (Request Parameters), 출력 결과 (Response Element)

출력방식은 JSON을 이용하였습니다.

( 출처: https://developers.daum.net/services/apis/local/geo/addr2coord )



[b]3. 예제 실행하기

‘제주 특별자치도 제주시 첨단로 242′의 좌표를 Json 받기’

https://apis.daum.net/local/geo/addr2coord?apikey={apikey}&q=제주 특별자치도 제주시 첨단로 242&output=json

결과 >

{"channel":{"result":"1","pageCount":"1","title":"Search Daum Open API","totalCount":"1","description":"Daum Open API search result","item":[{"newAddress":"영평동 2181","mountain":"","buildingAddress":"","lng":126.57049352777591,"placeName":"Not avaliable","mainAddress":"242","id":"N30664967","point_x":126.57049352777591,"point_y":33.450680345348374,"title":"제주특별자치도 제주시 첨단로 242","isNewAddress":"Y","point_wx":"400166","point_wy":"-11708","subAddress":"0","localName_1":"제주특별자치도","localName_2":"제주시","lat":33.450680345348374,"localName_3":"첨단로"}],"lastBuildDate":"","link":"http://developers.daum.net/services","generator":"Daum Open API"}}



이제 Qt 에서  Daum Maps Api geo [ 주소->좌표 변환 ]  사용해보록 하겠습니다.


.h file

#include <QNetworkReply>
class QNetworkAccessManager;
class DaumGeoService : public QObject
{
 Q_OBJECT
private:
 QNetworkAccessManager* m_nam;
public:
 void reqAddress2Coord(const QString& Address);
 
private slots:
 void finishedFromLoadGeoAddress2Coord();
 void errorFromLoadGeoAddress2Coord(QNetworkReply::NetworkError);
};



.cpp file

#include <QDebug>
#include <QUrl>
#include <QUrlQuery>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonValue>
#include <QByteArray>
DaumGeoService::DaumGeoService(QObject *parent) : QObject(parent)
{
 m_nam = 0;
}
void DaumGeoService::reqAddress2Coord(const QString& address)
{
 QUrl url = QString("http://apis.daum.net/local/geo/addr2coord");
QUrlQuery query;
 query.addQueryItem("apikey", "daumapiKey"); // daum key 입력하는곳
query.addQueryItem("q", address); // 검색 할 주소
query.addQueryItem("output", "json");
 url.setQuery(query.query());
 
 if (m_nam == 0)
 {
  m_nam = new QNetworkAccessManager(this);
 }
 QNetworkRequest request(url);
 QNetworkReply* reply = m_nam->get(request);
 
 if (reply)
 {
  connect(reply, SIGNAL(finished()), this, SLOT(finishedFromLoadGeoAddress2Coord()));
  connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
  this, SLOT(errorFromLoadGeoAddress2Coord(QNetworkReply::NetworkError)));
 }
 else
 {
  qDebug() << "DaumGeoService::reqAddress2Coord failed to post";
 }
}
 
void DaumGeoService::finishedFromLoadGeoAddress2Coord()
{
 QNetworkReply* reply = (QNetworkReply*)sender();
 
 QByteArray json = reply->readAll();
 //qDebug() << "DaumGeoService::finishedFromLoadGeoAddress2Coord json:" << json;

 QJsonDocument js&#111;&#110;Document = QJsonDocument::fromJson(json);
 
 if (jsonDocument.isNull())
 {
  qWarning() << "DaumGeoService::finishedFromLoadGeoAddress2Coord qWarning";
 }
 
  QJsonObject js&#111;&#110;Object = jsonDocument.object();
  QJsonValue js&#111;&#110;ValueChannel = jsonObject.value(QString("channel"));
  QJsonObject js&#111;&#110;ObjectItem = jsonValueChannel.toObject();
  QJsonArray layers = jsonObjectItem.value("item").toArray();
  QJsonObject firstLayer = layers.at(0).toObject();
 
  double latitude = firstLayer.value("lat").toDouble();
  double l&#111;&#110;gitude = firstLayer.value("lng").toDouble();
  qDebug() << "DaumGeoService::finishedFromLoadGeoAddress2Coord"
                << " latitude: " << latitude
                << " longitude: " << longitude;
 
  reply->deleteLater();
}
 
void DaumGeoService::errorFromLoadGeoAddress2Coord(QNetworkReply::NetworkError)
{
 QNetworkReply* reply = (QNetworkReply*)sender();
 qDebug() << "DaumGeoService::errorFromLoadGeoAddress2Coord"
 << " error:" << reply->errorString();
}
podo - starbig - www.podovat.com



 
 

Total 201
번호 제   목 글쓴이 날짜 조회 추천
201 [QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나 (1) 구름님 12-03 2274 0
200 [QT/X11] QWT for qt android (1) 구름님 03-07 4285 1
199 [QT/Win32] Qpaint를 이용해서 틱택토게임을 만들어보려하… 몽블랑 01-20 4003 0
198 [QT/Win32] QtSingleApplication 이용하기 (1) starbig 01-18 4075 0
197 [QT/Win32] Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사… starbig 01-15 4430 0
196 [QT/Win32] Qt에서 윈도우 서비스 이용하기, Qt Windows Servic starbig 01-15 3511 0
195 [QT/Embedded] QTcpSocket사용 시 플러그 뽑힘 증상 체크 방법 요원009 11-13 6862 0
194 [QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기 tmdwn 05-18 4454 0
193 [QT/Embedded] Qt update함수/repaint함수 사용법좀 알려주세여.. (1) 잉농 05-14 4177 0
192 [QT/Embedded] C++ Exception을 활용한 런타임 콜스택 정보 얻기 (1) korone 04-01 4188 0
191 [QT/Embedded] Qt 5.4.1 raspberry Pi 프로그램 개발하기 (5) 구름님 03-31 14600 1
190 [QT/Win32] Qt 다국어 처리 (2) korone 03-17 8377 0
189 [QT/Win32] signal to signal devilqoo 02-13 3869 0
188 [QT/Win32] Qt x64 바이너리 제공 사이트 (1) 인라이… 02-12 3811 1
187 [QT/Embedded] 우분투 Qt5 크로스 컴파일 (14/11/26 2차 수정) (9) 김아무… 11-12 11028 0
186 [QT/Embedded] Qt 5.3.2에서 Mouse Double Click시 이벤트 문제 (2) korone 11-11 4042 0
185 [QT/Embedded] QtWinExtras korone 11-11 3944 0
184 [QT/Win32] Qt 코딩 스타일 (편집 편) (4) devilqoo 10-22 7202 0
183 [QT/Win32] Qt와 C++11 (2) devilqoo 10-12 7287 1
182 [QT/Win32] Qt 에서의 이벤트 처리 (5) devilqoo 10-09 6824 0
181 [QT/Win32] QList와 QVector의 비교. (2) devilqoo 10-02 5096 0
180 [QT/Win32] Qt에서 사용되는 컨테이너들을 정리해 보았습… (4) devilqoo 10-01 5742 0
179 [QT/X11] qmake DEFINES 변수에 공백문자가 포함된 값을 설… (1) 별님 09-25 3821 0
178 [QT/Win32] 데이터 압축 관련 qCompress(), qUncompress() (9) 구름님 09-16 4109 0
177 [QT/Win32] QML 로 One-Source Multi-Platform (iOS, Android) 실행 tmdwn 09-03 5410 0
176 [QT/Win32] QML 로 iOS Application 제작하기 tmdwn 09-02 5452 0
175 [QT/Win32] QML 로 Android Application 제작하기 (4) tmdwn 09-02 5679 2
174 [QT/X11] qt에서 메모리 조작하기. (2) 나무나… 07-25 5808 0
173 [QT/Win32] Q_DECLARE_FLAGS 매크로 (2) 구름님 07-11 4759 2
172 [QT/Win32] Q_PROPERTY 매크로 (6) 구름님 07-09 6166 2
 1  2  3  4  5  6  7  


About korone.net | Copyright 2003 korone.net. All rights reserved.