Вот идея, где вы можете создать ее без использования API других сервисов.Я предполагаю, что вы хотите показать все данные клиенту.Если нет, то вы можете запросить в вашей БД значения min max lat, lon, чтобы ограничить область.
Давайте представим, что клиент хочет видеть ближайшие рестораны с координатами x, y Со стороны клиента вы отправляете запрос веб-службы showdata (lat, lon, введите)
На стороне сервера: Сначала вы запрашиваете свою БД, где выберите тип == restaurant.Это даст вам список ресторанов с координатами широты и долготы.Вы выполняете итерацию списка и вычисляете расстояние от значений lat, lon клиентов и вставляете результат в список элементов.
class Item
{
Distance
Name
Lat
Lon
}
List<Item> items
В качестве последнего шага вы сортируете свой список элементов по значению Distance и возвращаете результат вваш клиент.