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