Link

Priyam (@Signior-X)

Design your own Google Map

Table of Contents

  1. Introduction
  2. Stored Data
  3. Preprocessing
  4. Computing Quickest/Shortest Path
  5. Efficiency and Feasibility
  6. References
  7. Conclusion

Introduction

My design is to combine the power of different databases to combine and structure themseleves to work together. Also I benefit using openmaps data for some places https://planet.openstreetmap.org/ data available and can make changes and construct maps accordingly. It is simple, do not store images, instead store them as curves made by points and connect them in coherence usign nodes and tree structure.

Stored Data

First have some some points stored in the form of JSON in a nosql database for containing various points and their small points making curves, then having them as in the form of svg files so that they can be zoomed. One example of that is here Delhi

Then these features also contain some images in the form of .png and .jpg. Like storing patched, tiles, etc and mountains layers as a form of .png. And for landmark features which are very large can be stored as .jpg. Then the links between each feature is made usign the graph garph database. Which structs the linkage between different geographic features, as given in this example. just_an_example_structure

Yes, the size of data can be very huge, so very less use of images is done, only for use of curves to create new features.

Preprocessing

There must be a lot of preprocessing going on to achieve instantaneous results. Right? Yes, that’s the most necesarry part of this. After a couple of experiments, it became apparent that both importing and representing Geo data, to start with, could be improved. Importing selectively the data from Open Street Map to our form and using it is time consuming. Queries on existing solutions using Open Street Map would be too slow for this type of questions outlined above because of the sheer size of the data.

  • GIS data abstractions and operations
  • Import Open Street Map data Have them make relations with each other.

Computing Quickest/Shortest Path

Usign the weights for differnt routes, like for that we can give different weights to differnt factors like traffic, road size, road length, realtime predictions. The number of points in between in the same relation to a particular place, allow us to map the route. The roads would be classified in number of ways and will have binary values stating there traffic rate for each point which make them. This way if a traffic rate a certain sum gets over a certain point we can regard it as highly traffic place and can suggest other routes if possible, The concept of multithreading comes here, we can use diferent threads to perform this task asynchronsly, and for sure the one which gets evaluated first certainly has less congestion and times, also the weight will be high. Let say the user is following some points, he take different turn, for that we will certaily follow that path and in the mean time calculate the nearest point which should be on out previous selected track. Also asynchronously if it gets very far from (result is not calculated in mean time), simply start with the intital step.

Efficiency and Feasibility

  • Theoretically, This can be a good choice to have the shortest route as simple, just follow and count the number. Give them weights for each factor and get the problem solved, but handling this thing for so many people at a same time is not possible using this method.

References

Wikipedia, of course https://medium.com/neo4j/how-i-put-the-world-map-in-a-graph-422b651780e9 https://www.makeuseof.com/tag/technology-explained-google-maps-work/

Conclusion

Maps indeed very confusing and a lot of work needs to be done to keep mantaining them and also to make them up to date, traffic and related stuffs, I think this is indeed a very hectic task to do. This is just a brief idea, though I am sure this really does not work in real life scenerias.