You are here

MeshMap has been released!

39 posts / 0 new
Last post
kp4msr
MeshMap has been released!
Hello, MeshMap has been released, take a look to this app and let us know what is your feedback.

Please download at: https://github.com/kp4msr/MeshMap

K5DLQ
K5DLQ's picture
very nice!  Good little React
very nice!  Good little React app!
kp4msr
Thanks you, any feedback will

Thanks you, any feedback will be appreciated, this is the first release, it will be good if possible to test as a service in your node. The advance is that it will available 

KF6ODE
Some Feedback

I like it!  A couple comments:

You only list 2.4GHz and 5GHz nodes.  All of mine are either 3GHz or 900MHz ( I know, I know, I'm.... different ;-) ).  I would love to see those listed as well.

Currently, you have hard-coded some links to the webserver root, but in my case ( I know, I know ) I wanted it not in the root.  It was easy enough to fix, but based on this, I would vote for relative linking.

kc8ufv
kc8ufv's picture
I'll agree, any band should
I'll agree, any band should be supported (IIRC, there was talk about someone making the 5GHz stuff work up on 10GHz), and relative links are always a good idea, as the only place they won't work is if you are trying to link to a remote host...
 
kp4msr
can you explain a little more
can you explain a little more, example and how it will improve if changed.
kp4msr
I am working to add 900mhz
I am working to add 900mhz and 3 Ghz nodes. As i dont have any 900 or 3.4 ghz nodes in my network i will need someone to test the app so i will let you know.
Regarding the links to the files in the webroot, are you refering to the configuration file appConfig.json ? Or which especific files , can you give us more information about this ?
kp4msr
Agreed, i just listed 2.4 and
Agreed, i just listed 2.4 and 5 ghz because that are the only nodes we have in Puerto Rico, i will be include the others for the next release, please be pending.

Are you guys using it as a service in your meshs ? 
KF6ODE
My use case
I have an older Mac Mini that is attached to the node at my QTH, and I use it to tinker.  One of the things I have built is a dashboard / status page to all of my nodes, as well a a couple of nodes on the mesh that host services that I use.  I am currently experimenting with adding your map to the top of that page.  I have it zoomed and centered to show my nodes, and tweaked the RegEx to display all of the nodes in that area.
kp4msr
That's great! Can you share
That's great! Can you share some screenshots to see your integration.
nc8q
nc8q's picture
"nodesFilter" : "[a-zA-z]+[0-9][a-zA-Z]+[-][a-zA-Z]+[-][a-zA-Z]+
May
"nodesFilter" : "[a-zA-z]+[0-9][a-zA-Z]+[-][a-zA-Z]+[-][a-zA-Z]+[-][a-zA-Z]*[1-9]+"
be repeated on multiple lines?
My 1st view map is not showing any nodes.

Chuck
 
kp4msr
No, there must be only one
No, there must be only one regex. Try with a simple regex like this that should get all the nodes: 
"nodesFilter" : "."
 
If that still dont works please open the browser console (F12) on most browsers, and take a look the console, please post it here if there is any error there.

I want to troubleshoot this.
nc8q
nc8q's picture
F12: Error

Uncaught (in promise) Error:
Request failed with status code 404
exports createError.js:16
exports settle.js:17
onreadystatechange xhr.js:62

kp4msr
Which web server application
Which web server application are you using ? can you show screen shots of the files published on your web server ? 
nc8q
nc8q's picture
Which web server application ?

telnet nc8q-mesh-server 80
Trying 10.174.162.36...
Connected to nc8q-mesh-server.local.mesh.
Escape character is '^]'.
head /http/1.0
HTTP/1.1 400 Bad Request
Date: Sun, 28 Mar 2021 11:52:39 GMT
Server: Apache/2.4.25 (Raspbian)
Content-Length: 303
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.25 (Raspbian) Server at 127.0.1.1 Port 80</address>
</body></html>
Connection closed by foreign host.
-----
can you show screen shots of the files published on your web server ? 
Uh, can you be more explicit/specific?
I added your 'MeshMap' to my existing KG6WXC 'meshmap'.
Ah, looks like I have error in my soft link MESHMAP > MESHMAP:
gelmce@nc8q-mesh-map:/var/www/html/MeshMap $ ls -l
total 172
-rw-r--r-- 1 gelmce gelmce   368 Mar 26 11:33 appConfig.json
-rw-r--r-- 1 gelmce gelmce   371 Mar 25 08:35 appConfig.json~
-rw-r--r-- 1 gelmce gelmce  1313 Mar 25 08:14 asset-manifest.json
-rw-r--r-- 1 gelmce gelmce  7217 Mar 25 08:14 blueRadioCircle-icon.png
-rw-r--r-- 1 gelmce gelmce  3150 Mar 25 08:14 favicon.ico
-rw-r--r-- 1 gelmce gelmce  7025 Mar 25 08:14 goldRadioCircle-icon.png
-rw-r--r-- 1 gelmce gelmce 19902 Mar 25 08:14 grayRadioCircle-icon.png
-rw-r--r-- 1 gelmce gelmce  2223 Mar 25 08:14 index.html
-rw-r--r-- 1 gelmce gelmce  6958 Mar 25 08:14 magentaRadioCircle-icon.png
-rw-r--r-- 1 gelmce gelmce   492 Mar 25 08:14 manifest.json
-rw-r--r-- 1 gelmce gelmce 14702 Mar 25 08:14 mapLegend.png
-rw-r--r-- 1 gelmce gelmce  2464 Mar 25 08:14 marker-icon-2x.png
lrwxrwxrwx 1 root   root       7 Mar 25 08:24 MESHMAP -> MESHMAP
-rw-r--r-- 1 gelmce gelmce   440 Mar 25 08:20 orig-appConfig.json
-rw-r--r-- 1 gelmce gelmce  4286 Mar 25 08:14 prarednicon.ico
-rw-r--r-- 1 gelmce gelmce   977 Mar 25 08:14 prarednicon.png
-rw-r--r-- 1 gelmce gelmce 18337 Mar 25 08:14 prarednjpeg-logo1.jpg
-rw-r--r-- 1 gelmce gelmce 22742 Mar 25 08:14 prarednjpeg-logo.jpg
-rw-r--r-- 1 gelmce gelmce   869 Mar 25 08:14 precache-manifest.cef5d181eeac80067f0b865a1886dad8.js
-rw-r--r-- 1 gelmce gelmce  7213 Mar 25 08:14 purpleRadioCircle-icon.png
-rw-r--r-- 1 gelmce gelmce    67 Mar 25 08:14 robots.txt
-rw-r--r-- 1 gelmce gelmce  1185 Mar 25 08:14 service-worker.js
drwxr-xr-x 5 gelmce gelmce  4096 Mar 25 08:14 static
gelmce@nc8q-mesh-map:/var/www/html/MeshMap $ locate MESHMAP
/home/gelmce/Downloads/MeshMap/build/MESHMAP


Chuck

 

kp4msr
Hello Chuck, can you explain
Hello Chuck, can you explain me a little bit  your setup ? Which web server app are you using to host the app ? did you published only the content of the "build" folder at the reposiroty ? 
nc8q
nc8q's picture
nc8q: appConfig.json
{     
    "name" : "MESHMAP",
    "logoPath":"./prarednjpeg-logo1.jpg",
    "mapSettings": {
        "zoom": "11",
        "mapCenter": {
            "lat": "39.77",
            "lon": "-84.06"
        }
    },
    "contactInfo": {
        "callsign" : "NC8Q",
        "name": "Chuck Gelm",
        "email": "nc8q-mesh@gelm.net"
    },
    "nodesFilter" : "."
    }

 
kp4msr
On the PC that you are trying
On the PC that you are trying to  open MeshMap: can you access your node thru http://localnode.local.mesh/ ? 
nc8q
nc8q's picture
can you access your node thru http://localnode.local.mesh/ ?

Yes.
On that default node is a Raspberry Pi server with
Server version: Apache/2.4.25 (Raspbian)
Server built: 2019-10-13T15:43:54

This server has installed
MySQL (MariaDB),
PHP,
KG6WXC meshmap,
Dump1090 ADS-B mapper,
pilinBPQ,
Teamtalk, and a link to my
WSJT-X on another Raspberry Pi so that I can remotely operate FT8/4,...

I have /home/username/Downloads/MeshMap/build and a soft link
/var/www/html/mesh/MeshMap -> /home/username/Downloads/MeshMap/build

See image attached.

Chuck

Image Attachments: 
K5DLQ
K5DLQ's picture
should nodesFilter be ".*"
should nodesFilter be ".*" instead of "."?
 
kp4msr
in regex is a dot (.) instead
in regex is a dot (.) instead of a star *

On the PC that you are trying to  open MeshMap: can you access your node thru http://localnode.local.mesh/
kp4msr
Instead of using a symbolink
Instead of using a symbolink link can you deploy the files on build to your web server app root folder ?
nc8q
nc8q's picture
deploy the files
By 'deploy the files',
do you mean '/MeshMap/build' or '/build'?
Does '/build/index.html' look up the directory to /'MeshMap' ?
I think a link to 'MeshMap' makes more sense to a user than a link to 'build'.
:-|

Can I navigate to '/var/www/html/mesh/' and do a 'git clone MeshMap' or similar?

Chuck
 
kp4msr
You need to copy everything

You need to copy everything on "/build" folder to your web application web root folder.

BTW, I released a new version with some enhancements and fixes. http://github.com/kp4msr/MeshMap 
 

nc8q
nc8q's picture
copy everything on "/build" folder to your web application root

Sorry.
index.* on my web server root is already in use.
3rd party apps may use a sub-folder only.

http://nc8q-mesh-server.local.mesh/mesh/MeshMap/build/
"nodesFilter" : "."

MeshMap is working.
.../MeshMap/build displays
2 of the 4 active 900 MHz nodes
20 of the 23 active 2.4 GHz nodes
0 of the 4 active 3.4 GHz nodes
32 of the 32 active 5.8 GHz nodes and
6 of the 8 active non-RF nodes.

:-)

Chuck

kp4msr
Great! how do you fixed it ?
Great! how do you fixed it ? Installed the new version from github or by removing the symbolic link ?
nc8q
nc8q's picture
Moved files.
I moved the files [/home/<user>/Download/]Meshmap/* to [/var/www/html/mesh/]MeshMap,
then viewed ...'/MeshMap/build/'

Chuck
 
kp4msr
great, enjoy!
great, enjoy!

I will be working on a fre enhancements for next release.

MS
kp4msr
I just submitted a new

I just submitted a new release with some enhancements and a bug fix.

Download: http://github.com/kp4msr/MeshMap 

Enhancements: 
- Include 3 ghz and 900 Mhz nodes in Map
- Bug fix to find appConfig on a relative path.
 

Image Attachments: 
AC2OG
AC2OG's picture
nginx message

Hello,
I tried it, but what I get is the following error ? message.


Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com

If I put "http:// i3rke-web-server.local.mesh/MeshMap/build" on the address bar of the browser I get the map without any nodes.

Could you please explain how to publish the service?
 

KM6SLF
KM6SLF's picture
Where does this get its map
Where does this get its map tiles from? Is a local tile server needed? Or is it dependent on tiles served from internet sources?
AD9BU
Raspberry PI
Will this work on a Raspberry Pi 4 on a node or is it just strictly computer based?
nc8q
nc8q's picture
Raspberry Pi 4 on a node or is it just strictly computer
AD9BU:

Strictly, a Raspberry Pi is a computer.
The author's contact information is on the github page on the original post in this thread.
The github page and this thread is 2 years old.

73, Chuck

 
AD9BU
This is what happens when I
This is what happens when I follow KN6PLV directions specifically on the 2nd on where you have to do the NPM command. Any suggestions?
Image Attachments: 
w6bi
w6bi's picture
Screenshot
The screenshot's too small to be legible.  Cut & paste the error here.

Orv W6BI
 
AD9BU
Is that any better?
Is that any better?
Image Attachments: 
KN6PLV
KN6PLV's picture
From the look of the screen

From the look of the screen shot, you didnt change into the directory you just cloned the code into.

KE0RSX
KE0RSX's picture
Odd errors for me
I've installed MeshMap on a Raspberry Pi 3B, as well as a Windows 11 computer. The Pi3 is running apache2 and the Windows machine is running Tomcat 9.x. When I open a web browser and point to the Pi3B, I get a blank page but the source code shows that I should have something. When I open it on the Windows server (using 127.0.0.1:8080/MeshMap), it depends. If I'm not connected through the mesh, I get a map with a error that says "No AREDN Nodes could be found. Are you sure you're connected to the Mesh?" If I am connected through the AREDN Mesh, the map loads and then goes to a solid black screen.

Here is the source from either webpage (they are the same):
 
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<link rel="icon" href="./prarednicon.ico"/>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<meta name="theme-color" content="#000000"/>
<meta name="description" content="Created by KP4MSR"/>
<link rel="apple-touch-icon" href="./logo192.png"/>
<title>AREDN MAP</title>
<link href="./static/css/2.42348699.chunk.css" rel="stylesheet">
<link href="./static/css/main.653673f3.chunk.css" rel="stylesheet">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root">
</div>
<script>!function(e){function r(r){for(var n,l,a=r[0],p=r[1],f=r[2],c=0,s=[];c<a.length;c++)l=a[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);for(i&&i(r);s.length;)s.shift()();return u.push.apply(u,f||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var p=t[a];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={1:0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="./";var a=this.webpackJsonppraredn=this.webpackJsonppraredn||[],p=a.push.bind(a);a.push=r,a=a.slice();for(var f=0;f<a.length;f++)r(a[f]);var i=p;t()}([])
</script>
<script src="./static/js/2.ba5edfd2.chunk.js">
</script>
<script src="./static/js/main.b9ee12b0.chunk.js">
</script>
</body>
</html>
Originally I thought it might be the Raspberry Pi, but it doesn't matter which computer I have it on. I extracted the build directory and copied the contents to a MeshMap folder in webapps/ROOT, so I use 127.0.0.1:8080/MeshMap to get into the site (on the Windows computer). On the raspberry pi, I copied the contents to the wwwroot/html directory, so I just go to http://10.171.47.54/ The only changes that I made to the appConfig were to put our coordinates in (41.4245, -91.0432) and our contact information. The node filter is set to "." on the Windows machine and still at the default on the raspberry pi (I'm not a regex expert and I'd rather see all of the nodes and connections--not just the ones that have AC0EC in them, as we have personal nodes online too).

I'm sure it's something simple, but I have no clue where to look first.

Have a great night. :)
Patrick.

 
KE0RSX
KE0RSX's picture
An update
When I inspected the page and checked the console, I realize what the issue might be. I'm getting 

Access to XMLHttpRequest at 'http://10.173.224.74/cgi-bin/sysinfo.json/?link_info=1' from origin 'http://127.0.0.1:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

So now I just have to figure out how to fix this. From what I can tell, it's a Cross-site Scripting issue that my browser is blocking. This happens regardless of whether my computer is connected to both my home network and AREDN mesh, or just the AREDN mesh itself.

I'm also getting CONNECTION_TIMED_OUT errors as well. Again this happens regardless of whether I'm connected to both my home network and the AREDN mesh or just the mesh. It also happens regardless of whether I use 127.0.0.1:8080/MeshMap or http://dcky-hp-desktop.local.mesh:8080/MeshMap/ to access the site. On the Raspberry pi, I get a 404 Error for each host it tries to find--even though it's on the mesh and I'm accessing it via the mesh.

So, I'm still confused but I think I'm closer to a solution. If someone's able to connect to the server using the link above (the dcky-hp-desktop one) and it works, let me know.

Have a great night. :)
Patrick.

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer