Finally it worked. Thank you very much. Just two points:
a. Ajaxing ends up with this URL:
I mean the internal details are visible to the user. An ideal solution is to reset the URL to something like this: localhost:4567/map
b. Suppose I cold load with an invalid URL:
it still renders the map page. Ideally, it should display the "Page Not found message"
Any solution to these two? Or, shall I consider them as "OK let it behave so!"?
No built in way, but there is nothing preventing you from writing your plugin to use a config file instead of settings stored in the database.
When your nodebb starts instead of loading your plugin settings from the database you would read it from the file.