6
3 Comments

Looking for someone experienced building marketplace maps

Hey
Recently built a marketplace map that needs some work. Having some difficulty with some search functions. Trying to get it to work like Airbnb or Yelp 's maps but cant seem to find the best way to structure the code. Any help would be greatly appreciated. Looking for someone to consult, I will have my devs work on it.

Thanks in advance,

on January 28, 2022
  1. 1

    I would suggest using Elasticsearch as a database of locations or a cache for the database of locations because it's fast and it allows proximity search (search by distance). For the maps and map point grouping, I would use Leaflet js library. Hope it helps.

    1. 1

      hey @kka
      Thank you very much. Would you be free to explain further over a quick call? I haven't heard of Elasticsearch before and have used Leaflet in the past.

      1. 1

        Hey Jordan,

        A bit busy these days. Can have a call next week.

        For now, I'll give you a brief description of how I see it:

        1. You have an Elasticsearch database of JSON objects (real estate objects, for instance). Every object has its GEO location (latitude, longitude) along with image, description, etc. Elasticsearch allows you to search by distance from any GEO point (e.g your place). For example, you can tell Elastic - give me all real estate objects within the 50km circle around me. Elastic gives you the list of objects sorted by the distance from your place.

        2. If you already have another database server, for example MongoDB, you may use its GEO features instead https://docs.mongodb.com/manual/tutorial/geospatial-tutorial/ so you may not need Elasticsearch at all. It depends on your current stack.

        3. Leaflet allows you to use OpenStreatMaps or GoogleMaps through a unified JS interface. You take Elasticsearch/Mongodb results (JSON objects) and display them on a map. If you have too many objects at the same place, they are grouped until you zoom in.

        Please drop me a line to konstantin@komelin.com if you still have questions, so we could find time for a call next week.