Hola hoy quiero hablarles del algoritmo de simplificacion de puntos que se usa para reducir la cantidad de puntos requeridos para dibujar una curva , normalmente seria con un poligono .
Este algoritmo esta en javascript y lo he usado la semana pasada en un proyecto de google maps. en este caso se requeria reducir la cantidad de puntos necesarios para dibujar un poligono .
Lo que quiero comentar hoy es como pasarle los datos al metodo , para usarlo se necesita pasar un arrelgo o un objeto , cualquiera que sea la coleccion de objeto y dentro de esta coleccion cada elemento tiene que estar compuesto por 2 elementos que serian las coordenas x, y
aqui les dejo el ejemplo de como le he pasado los parametros al metodo:
var count = path.getLength();
for(var b = 0; b < count; b++)
{
newPath.push( {y: path.getAt(b).lat(), x:path.getAt(b).lng()} );
}
var newPoints = simplifyPath(newPath,0.15);
return newPoints;
path es un arrayMVC de google que tiene elemetos LntLng , asi iteramos en cada elementos y armamos el nuevo obj que sera pasado al metodo de Douglas Peucker , tambien hay que recordar que se le tiene que pasar la tolerancia yo he usado 0.15 , tiene que hacer pruebas haber cual les gusta mas.
bueno eso seria todo para usarlo , el metodo les devolvera un arreglo que tiene que pasar de nuevo a un arryaMVC para dibujar su figura aqui les dejo el link del metodo en github
Douglas Peucker
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola que tal, estoy tratando de implementar este mismo algoritmo en lenguaje R, tiene algun tipo de informacion que facilite. Muchas gracias de antemano.
ResponderEliminarNo se nada de lenguaje R pero encontre estos link en google tal vez te puedan servir:
Eliminarhttp://geotheory.co.uk/blog/2012/02/20/simplifying-spatial-polygons-in-r/
http://stackoverflow.com/questions/17217413/why-is-rs-implementation-of-the-douglas-peucker-algorithm-so-slow
http://stackoverflow.com/questions/42397943/could-not-find-the-douglaspeuckerepsilon-in-r-language