def criar_poligono_app(linha_app, linha_app_frente): array = Array() l1_firstX = linha_app.firstPoint.X l1_firstY = linha_app.firstPoint.Y l1_lastX = linha_app.lastPoint.X l1_lastY = linha_app.lastPoint.Y l2_firstX = linha_app_frente.firstPoint.X l2_firstY = linha_app_frente.firstPoint.Y l2_lastX = linha_app_frente.lastPoint.X l2_lastY = linha_app_frente.lastPoint.Y array.add(linha_app.firstPoint) array.add(linha_app.lastPoint) if bool_interseccao_entre_linhas(((l1_lastX,l1_lastY),(l2_lastX,l2_lastY)),((l1_firstX,l1_firstY),(l2_firstX,l2_firstY))): array.add(linha_app_frente.firstPoint) array.add(linha_app_frente.lastPoint) else: array.add(linha_app_frente.lastPoint) array.add(linha_app_frente.firstPoint) array.add(linha_app.firstPoint) polygon = Polygon(array, projecao_geo) array.removeAll() del array polygon = polygon.buffer(0.000000001) return polygon
def calc_linhas_largura(dict_circ_desc, ponto): """criar linhas de largura""" if dict_circ_desc["tipo_circulo"] == "meio": linha_nao_intersecta_ponto = None point_circ = Point() point_circ.X = dict_circ_desc["pt_medios_circ"]["x_ptm"] point_circ.Y = dict_circ_desc["pt_medios_circ"]["y_ptm"] array = Array([point_circ, ponto.getPart(0)]) linha_circulo = Polyline(array, projecao_geo) for parte_linha in dict_circ_desc["partes"]: if not dict_circ_desc["partes"][parte_linha]["cruza_ponto"]: linha_nao_intersecta_ponto = dict_circ_desc["partes"][parte_linha]["linha_geometria"] if linha_circulo.disjoint(linha_nao_intersecta_ponto): array.removeAll() point_circ = Point() point_circ.X = dict_circ_desc["pt_medios_circ"]["x_ptm_inv"] point_circ.Y = dict_circ_desc["pt_medios_circ"]["y_ptm_inv"] array = Array([point_circ, ponto.getPart(0)]) linha_circulo = Polyline(array, projecao_geo) linha_largura = linha_circulo.intersect(poligono_ma, 2) array.removeAll() else: linha_largura = linha_circulo.intersect(poligono_ma, 2) array.removeAll() return linha_largura, linha_circulo
def linha_de_largura(self, dict_descricao, ponto): if dict_descricao["tipo"] == "meio": linha_nao_intersecta_ponto = None point_circ = Point() point_circ.X = dict_descricao["ptc_x"] point_circ.Y = dict_descricao["ptc_y"] array = Array([point_circ, ponto.getPart(0)]) linha_circulo = Polyline(array,self.spatial_geo_sirgas_2000) for parte_linha in self.dict_partes: if self.dict_partes[parte_linha]["cruza_ponto"] == False: linha_nao_intersecta_ponto = self.dict_partes[parte_linha]["linha_geometria"] if linha_circulo.disjoint(linha_nao_intersecta_ponto): array.removeAll() point_circ = Point() point_circ.X = self.ptc_x_inv point_circ.Y = self.ptc_y_inv array = Array([point_circ, ponto.getPart(0)]) linha_circulo = Polyline(array,self.spatial_geo_sirgas_2000) linha_largura = linha_circulo.intersect(self.poligono_ma_geo, 2) array.removeAll() else: linha_largura = linha_circulo.intersect(self.poligono_ma_geo, 2) array.removeAll() return linha_largura, linha_circulo