You can create a card, subscribe to the event of changing the borders of the map. After changing the boundaries of the map request data. This code will, with each change, send requests to the server for new data:
myMap.events.add('boundschange', function(e){ var bounds = e.get('newBounds'); // тут запросить данные от сервера и отобразить их })
Then you request geolocation (there is an example of determining the user's location in the sandbox: https://tech.yandex.ru/maps/jsbox/2.1/geolocation ) and the map will request new data from the server when the map boundaries change.
But the best option I see is the creation of a loading object manager and it will follow the map boundaries and make requests, you only need to process the data on the server and return the data correctly. You can read about it here: https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/loading-object-manager/about-docpage/ We request geolocation as I indicated in the example above.