Existem muitas maneiras de lidar com isso, mas algumas se destacam como gerais e eficazes. Para entender isso, vamos enumerar alguns dos problemas que talvez precisem ser resolvidos:
Pode haver lacunas entre os polos que são tão grandes que o algoritmo pode ver as lacunas como sendo interrupções reais no sistema de transmissão.
Pode haver alguns segmentos curtos da estrada, cruciais para conectar as estradas a uma rede, que, no entanto, não possuem postes próximos. Esses segmentos não seriam selecionados pela proximidade dos pólos, mas são uma parte necessária da solução.
Pode haver postes não acessíveis por estrada a partir do ponto central. Esses polos podem ser partes de outras redes de transmissão originárias de outros pontos centrais.
Também estou adotando a posição de que, já que você já possui uma rede de polilinhas (as estradas), seria vantajoso explorá-la em vez de conectar os pontos do poste com uma polilinha completamente nova, que provavelmente não será muito parecida com as estradas.
Essas considerações sugerem que os ingredientes de uma boa solução incluem algumas etapas principais:
Calcule as distâncias da estrada desde o ponto central até todos os polos.
Identifique os postes que possuem distâncias máximas localmente ao longo de seu segmento de estrada específico : ou seja, nenhum de seus vizinhos no mesmo segmento tem distâncias maiores.
Faça os caminhos mais curtos desde esses máximos locais até o ponto central.
A união desses caminhos mais curtos rastrearia a rede de transmissão. (De fato, a etapa 2 não é realmente necessária, mas reduziria bastante o cálculo envolvido na etapa 3.)
As etapas 1 e 3 podem ser executadas usando uma representação de rede (no Network Analyst) ou uma representação de varredura (no Spatial Analyst, usando um cálculo de CostDistance ou FlowAccumulation). A etapa 2 é um resumo direto do banco de dados: após a etapa 1, cada polo terá seu segmento de estrada e distância como atributos. Encontre a distância máxima por segmento de estrada e selecione os pólos que atingem essas distâncias máximas.
Existem algumas situações problemáticas em potencial:
Alguns postes podem não estar próximos das estradas. Não há nada na declaração do problema que nos diga o que deve ser feito sobre isso. Eles podem ser manipulados automaticamente com cálculos de varredura (uma grade de custos apropriada atribuirá altas impedâncias às células não rodoviárias, mas não infinitas, permitindo que pólos isolados se conectem às estradas mais próximas, mas infelizmente não). No mínimo, depois de obter a solução na etapa 3, você pode selecionar todos os pólos que não estão nessa rede e considerar como eles devem ser tratados (talvez criando manualmente conexões para eles ou talvez com uma solução de árvore de abrangência mínima euclidiana).
Se alguns segmentos de estrada formarem loops, você deve pular a etapa 2, pois, caso contrário, partes desses loops poderão ser perdidas.
As polilinhas da estrada podem não formar uma rede conectada. Pode haver pequenas lacunas entre os segmentos da estrada (às vezes apenas milímetros de tamanho) que dividem uma rede que parece conectada visualmente. Esse é um problema de qualidade de dados que afetaria qualquer solução, exceto algumas baseadas em varredura.
Em um ponto, mencionei FlowAccumulation de passagem. Isso pode surpreender as pessoas: o que esse problema tem a ver com riachos e bacias hidrográficas? Olhe a imagem por um tempo. Imagine o ponto de origem como o ponto baixo de uma paisagem e as estradas com postes telefônicos como traços de fluxos que fluem em direção a esse ponto baixo. Se podemos criar uma superfície para a qual as estradas realmente sãoos córregos, então podemos deixar um pouco de "chuva" cair no local de cada pólo e fluir ladeira abaixo. Os pontos que se molham são a solução que buscamos: eles conectam os postes de forma eficiente a uma rede que segue as estradas. Um cálculo apropriado de CostDistance - com baixa impedância diferente de zero ao longo das estradas e impedância extremamente alta, mas não infinita, fora das estradas - criará exatamente esse tipo de superfície. Outra maneira de criar essa superfície é a partir da grade de distância euclidiana das estradas. Isso é perfeito, exceto que as estradas são niveladas. Eles precisam se inclinar; para isso, adicione um múltiplo extremamente pequeno das distâncias ao longo das estradas à grade de distância euclidiana. (A distância da estrada ainda exige um cálculo de CostDistance, que é caro, mas desta vez só precisa ser realizado para as células da estrada, em vez de todas as células da grade, o que acelerará em ordens de magnitude. Isso nos permite usar uma grade de resolução extremamente alta, se quisermos, evitando possíveis erros de discretização feitos com grades grossas.)