def run(self): xx = str(self.__xx) yy = str(self.__yy) if abs(float(xx)) > 180 or abs(float(yy)) > 90: QgsMessageLog.logMessage( self.tr('Worker: %s, %s are wrong coords!') % (xx, yy), self.tr('OSMInfo'), QgsMessageLog.INFO ) self.gotError.emit(self.tr('Worker: %s, %s are wrong coords!') % (xx, yy)) return url = 'http://overpass-api.de/api/interpreter' request = QNetworkRequest(QUrl(url)) request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/x-www-form-urlencoded'); qnam = QgsNetworkAccessManager.instance() # around request dist = PluginSettings.distance_value() timeout = PluginSettings.timeout_value() request_data = '[timeout:%s][out:json];(node(around:%s,%s,%s);way(around:%s,%s,%s);relation(around:%s,%s,%s););out tags geom;' % (timeout, dist, yy, xx, dist, yy, xx, dist, yy, xx) reply1 = qnam.post(request, QByteArray(request_data)) loop = QEventLoop() reply1.finished.connect(loop.quit) loop.exec_() if reply1.error() != QNetworkReply.NoError: reply1.deleteLater() self.gotError.emit(self.tr('Error getting data from the server')) return try: data = reply1.readAll() l1 = json.loads(str(data))['elements'] reply1.deleteLater() except: self.gotError.emit(self.tr('Error parsing data')) return finally: reply1.deleteLater() request_data = '[timeout:%s][out:json];is_in(%s,%s)->.a;way(pivot.a);out tags geom;relation(pivot.a);out geom;' % (timeout, yy, xx) reply2 = qnam.post(request, QByteArray(request_data)) loop = QEventLoop() reply2.finished.connect(loop.quit) loop.exec_() if reply2.error() != QNetworkReply.NoError: reply2.deleteLater() self.gotError.emit(self.tr('Error getting data from the server')) return try: data = reply2.readAll() l2 = json.loads(str(data))['elements'] except: self.gotError.emit(self.tr('Error parsing data')) return finally: reply2.deleteLater() self.gotData.emit(l1, l2)
def run(self): xx = str(self.__xx) yy = str(self.__yy) if abs(float(xx)) > 180 or abs(float(yy)) > 90: QgsMessageLog.logMessage( self.tr('Worker: %s, %s are wrong coords!') % (xx, yy), self.tr('OSMInfo'), QgsMessageLog.INFO ) self.gotError.emit(self.tr('Worker: %s, %s are wrong coords!') % (xx, yy)) return url = 'http://overpass-api.de/api/interpreter' request = QNetworkRequest(QUrl(url)) request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/x-www-form-urlencoded'); qnam = QgsNetworkAccessManager.instance() # around request dist = PluginSettings.distance_value() request_data = '[timeout:30][out:json];(node(around:%s,%s,%s);way(around:%s,%s,%s));out tags geom;relation(around:%s,%s,%s);' % (dist, yy, xx, dist, yy, xx, dist, yy, xx) reply1 = qnam.post(request, QByteArray(request_data)) loop = QEventLoop() reply1.finished.connect(loop.quit) loop.exec_() if reply1.error() != QNetworkReply.NoError: reply1.deleteLater() self.gotError.emit(self.tr('Error getting data from the server')) return try: data = reply1.readAll() l1 = json.loads(str(data))['elements'] reply1.deleteLater() except: self.gotError.emit(self.tr('Error parsing data')) return finally: reply1.deleteLater() request_data = '[timeout:30][out:json];is_in(%s,%s)->.a;way(pivot.a);out tags geom;relation(pivot.a);out tags bb;' % (yy, xx) reply2 = qnam.post(request, QByteArray(request_data)) loop = QEventLoop() reply2.finished.connect(loop.quit) loop.exec_() if reply2.error() != QNetworkReply.NoError: reply2.deleteLater() self.gotError.emit(self.tr('Error getting data from the server')) return try: data = reply2.readAll() l2 = json.loads(str(data))['elements'] except: self.gotError.emit(self.tr('Error parsing data')) return finally: reply2.deleteLater() self.gotData.emit(l1, l2)
def fill_pages(self): # common self.distSpinner.setValue(PluginSettings.distance_value()) self.timeoutSpinner.setValue(PluginSettings.timeout_value())
def fill_pages(self): # common self.distSpinner.setValue(PluginSettings.distance_value())