I have many markers in a kml file. All the markers are on the roads.

I wonder if there is a way to process the data and connect the markers by following the road? Of course, the markers should not be randomly connected with each other. The point is to mark the parts of the roads that have markers on them.

I could of course just manually create the lines myself. But there are so many markers, and the data is expanded almost daily.

  • 1
    what is the roads datasource? what format?
    – Mapperz
    Jun 13, 2011 at 20:30
  • I am not sure what you mean. It's a regular Google Map (v3) with mapTypeId google.maps.MapTypeId.ROADMAP and an kml overlay.
    – reggie
    Jun 14, 2011 at 10:50
  • Imho, this approach ("matching points to roads in google maps data") won't work. What exactly do you need as a final product?
    – underdark
    Jun 14, 2011 at 12:22
  • Do you mean like this example? econym.org.uk/gmap/example_cartrip.htm (the car is animated to the driving directions of the route)
    – Mapperz
    Jun 14, 2011 at 13:43
  • @underdark: The result would be polylines along the roads, highlighting the roads that have a high density of markers on them. Like a "heat map" for roads. @Mapperz: No. But the example is very nice, too. :)
    – reggie
    Jun 14, 2011 at 18:46

3 Answers 3


AFAIK Google Maps API won't give you access to its underlying vector data. You can use OpenStreetMap instead (which does provide its vector data, and this is often not understood by people). Unless you have vector data, there is no reliable way to match your markers with roads.

You could match each of your markers to the nearest road (using a certain distance tolerance). Then you can simply highlight the roads that have a certain density of markers.


In ArcGIS ET Wizzard can import .kml (also arcgis itself can). Latter you could use ET Wizard point->polyline tool (if your data are in order) to create polyline. Not sure how to do it in free soft. Otherwise, since its .xml format and features are marked by tags ie. (simplified) <point><coordinates>x,y</coordinates> and <linestring><coordinates>x,y x,y x,y etc.</coordinates>, maybe you could just edit it in MS Excel to extract points coordinates and stick it in to <linestring> tag. Just a thought.

  • Does this cover "connect the markers by following the road"?
    – underdark
    Jun 14, 2011 at 10:30
  • The markers in the kml are random and not in order. I guess sorting them by proximity would be helpful. But I would also need some algorithm to cluster the points together first. Because I am not looking to connect all the dots. I just want to mark those roads that have a high density of markers along them.
    – reggie
    Jun 14, 2011 at 10:49
  • Sorry, misunderstood.
    – Tomek
    Jun 14, 2011 at 10:58

If you are willing to do it with Google Maps the API includes a DirectionsService which can be queried to retrieve a route and can also be used to actually render it with a DirectionsRenderer. The documentation has some pretty good examples.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.