On 23/06/19 1:17 PM, Rolando Valdez wrote:
Thank you for your answer.
I have a shapefile with, say, counties, and I got another shapefile with
the roads. ?What if a county does not intersect any road?
I am sorry, but it is not at all clear to me just what the problem is.
How do the counties come into the picture? You said you wanted to get
the road distance between points on the roads. What have the counties
got to do with this?
Can you perhaps provide a reproducible example?
cheers,
Rolf
El jue., 20 de jun. de 2019 a la(s) 19:08, Rolf Turner
(r.turner at auckland.ac.nz <mailto:r.turner at auckland.ac.nz>) escribi?:
On 21/06/19 12:26 PM, Rolando Valdez wrote:
> Dear community,
>
> Is there any way to create a spatial weight matrix based on road
> I am trying to use the road distance between two points instead of
> euclidean distance.
>
> I've seen that there is a package named osrm. Can anyone give
some advice?
I don't know anything about "osrm". Calculating "road distances"
can be
done in the spatstat package reasonably easily, if you take the
to represent your collection of roads as a "linnet" object.
Given that you have done so, suppose that your linnet object is "L"
that you have vectors "x" and "y" specifying the points on L (i.e. on
your roads) between which you want to know the distances.
Do:
X <- lpp(data.frame(x=x,y=y),L)
dMat <- pairdist(X)
The object "dMat" is a (symmetric) square matrix; dMat[i,j] is the
distance between point i and point j. (Of course the diagonal
are all 0.)
If your collection of roads is specified by means of a shapefile,
vignette("shapefiles") will tell you how to turn this collection
"psp" ("planar segment pattern") object; the function (method)
as.linnet.psp() can then be used to turn the "psp" object into a
"linnet" object.
HTH