You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
O problema estritamente geométrico é conhecido no jargão GIS como "K nearest neighbours" (KNN), e encontra-se bem apresentado em postgis.net/workshops/knn (archive).
Basta fazermos alguns testes com os dados que temos em mãos, ajustar parâmetros e então eleger o algoritmo mais adequado. Sugere-se criar antes um conjunto de "testes canônicos" para cada grupo (ex. vias rurais do estado de São Paulo), que ficam sendo tanto o referencial para ajustes e seleção de algoritmos, como um primeiro conjunto de testes de regressão a ser usado durante o desenvolvimento da solução final.
Após experiência com dois ou mais grandes grupos (ex. vias rurais e urbanas) pode-se avaliar se é necessária a parametrização (ajustes diferentes para grupos diferentes) ou não.
A solução do problema pode ser expressa como função PostGIS na Lib complementar, que retorna JSON com ID da via mais provável e score de proximidade: CREATE FUNCTION lib.point_via_knn(point geometry, type text DEFAULT NULL, city_id bigint DEFAULT NULL) RETURNS JSONb. Pode-se forçar o contexto do ponto (apenas vias de uma cidade ou ajustes para zona rural) caso o algoritmo seja sensível a algum parâmetro.
Variante com restrição sobre o nome da via
Em geral o problema de encontrar a linha mais próxima de um ponto surge no contexto de se consolidar um ponto de endereçameto: as tags addr:street e addr:housenumber são fornecidas junto com o ponto num exemplo típico do OSM. Fora do OSM, numa consulta livre (nome de rua dado com mais liberdade e imprecisão), pode-se supor que addr:street é composto apenas de palavras-chave e addr:housenumber nulo. Devemos supor portanto que o único input adicional (ao problema KNN) é o nome de rua dado por palavras-chave.
... Pendente resolução como extensão do KNN, por exemplo fixando-se um score para o casamento de palavras-chave e ajustando o score conforme grau de confiabilidade da informação de ambos os lados (linhas do OSM podem estar registradas com nomes errados).
The text was updated successfully, but these errors were encountered:
O problema estritamente geométrico é conhecido no jargão GIS como "K nearest neighbours" (KNN), e encontra-se bem apresentado em postgis.net/workshops/knn (archive).
Basta fazermos alguns testes com os dados que temos em mãos, ajustar parâmetros e então eleger o algoritmo mais adequado. Sugere-se criar antes um conjunto de "testes canônicos" para cada grupo (ex. vias rurais do estado de São Paulo), que ficam sendo tanto o referencial para ajustes e seleção de algoritmos, como um primeiro conjunto de testes de regressão a ser usado durante o desenvolvimento da solução final.
Após experiência com dois ou mais grandes grupos (ex. vias rurais e urbanas) pode-se avaliar se é necessária a parametrização (ajustes diferentes para grupos diferentes) ou não.
A solução do problema pode ser expressa como função PostGIS na Lib complementar, que retorna JSON com ID da via mais provável e score de proximidade:
CREATE FUNCTION lib.point_via_knn(point geometry, type text DEFAULT NULL, city_id bigint DEFAULT NULL) RETURNS JSONb
. Pode-se forçar o contexto do ponto (apenas vias de uma cidade ou ajustes para zona rural) caso o algoritmo seja sensível a algum parâmetro.Variante com restrição sobre o nome da via
Em geral o problema de encontrar a linha mais próxima de um ponto surge no contexto de se consolidar um ponto de endereçameto: as tags
addr:street
eaddr:housenumber
são fornecidas junto com o ponto num exemplo típico do OSM. Fora do OSM, numa consulta livre (nome de rua dado com mais liberdade e imprecisão), pode-se supor queaddr:street
é composto apenas de palavras-chave eaddr:housenumber
nulo. Devemos supor portanto que o único input adicional (ao problema KNN) é o nome de rua dado por palavras-chave.... Pendente resolução como extensão do KNN, por exemplo fixando-se um score para o casamento de palavras-chave e ajustando o score conforme grau de confiabilidade da informação de ambos os lados (linhas do OSM podem estar registradas com nomes errados).
The text was updated successfully, but these errors were encountered: