How to model bicycle sharing scheme?

One of the problems I have recently considered is the problem of rebalancing bicycle stations for bike-sharing schemes all over the world. It is not a secret that the demand for bikes across the city varies (some people, including myself, prefer to go downhill rather than uphill, other ride a bike only during sunny weather etc.). Thus, resulting in a serious disproportion of available bikes among different stations at different times of the day. As a result, bike-sharing companies hire men with a van to pick up bikes from less used locations to locations with high demand.

How would one go about trying to model that? I am fairly familiar with the concept of networks in operations research. However, this seems to be far more complex. Would it be possible to create a list of stations (nodes) from which the driver would have to pick a certain amount of bikes and transport them elsewhere (to other station/ node)?

Suppose that I have data on starting station, ending station, duration of the ride, coordinates of each station. From a more practical point of view - what might be the right place to get data on the distance between nodes? Assuming the straight lines between nodes seems like a quite of simplification, however, this is what I am trying to do, simplify and then solve the easier problem. If, however, this is an oversimplification, where to get real data on the distances? I tried google's static API but it does not work for me even after I signed up and everything.

Daniel Freund, Shane G. Henderson, Eoin O'Mahony, and David B. Shmoys won the 2018 Wagner Prize for their work on this problem. This link gives lots of info, including a video presentation:

https://www.informs.org/Impact/O.R.-Analytics-Success-Stories/Analytics-and-Bikes-Riding-Tandem-with-Motivate-to-Improve-Mobility

The paper is:

Freund, Daniel, et al. "Analytics and bikes: Riding tandem with motivate to improve mobility." INFORMS Journal on Applied Analytics 49.5 (2019): 310-323.

Coordinates of the stations (I assume you mean latitude and longitude) aren't necessary if you have the driving times between stations. You should be able to get estimated driving times via an API to Google Maps or some other mapping source, with a couple of caveats. The first is that driving time may be dependent on time of day and day of week, so you might want to sample all the distances at intervals throughout a week. The other caveat is that driving times from Google Maps, Waze etc. are affected by traffic conditions (generally a good thing), which might include temporary phenomena such as road closures for construction, accident remediation, a parade, etc. It could be tricky to rule those things out, which suggests to me sampling driving times for each segment not just multiple times during the week but over a few different weeks.

Another possibility, if you are working with an actual ride share company, is to get them to log van trips (starting and ending station, day and time, travel time). That won't necessarily give you every possible link in the network, but it would provide realistic estimates for at least some (leaving you to use Google Maps, Waze or whatever for the remaining links).

You also need demand data (how many bikes are wanted on average at each station at each time of day, how many on average are dropped off at each station at each time of day). There will tend to be temporal patterns, such as commuters wanting to pick up bikes in residential areas or near train and bus stations in the morning, dropping them near urban destinations, and reversing that pattern in the evening.