Let P be a path between two points s and t in a polygonal subdivision with obstacles and weighted regions. Given a relative error tolerance ε ∈ (0,1), we present the first algorithm to compute a path between s and t that can be deformed to P without passing over any obstacle and the path cost is within a factor 1 + ε of the optimum. The running time is $O(\frac{h^3}{\varepsilon^2}kn\,\mathrm{polylog}(k,n,\frac{1}{\varepsilon}))$ , where k is the number of segments in P and h and n are the numbers of obstacles and vertices in , respectively. The constant in the running time of our algorithm depends on some geometric parameters and the ratio of the maximum region weight to the minimum region weight.