node-red-contrib-web-worldmap에서 순식간에 영국 지도를 표시하는 문제 대책

개시하다


SNS의 노드 -REA User Group에서...node-red-contrib-web-worldmapで地図を表示するとイギリスが一瞬表示される이런 문제가 있습니다.
해결 방법으로 삼다ブラウザ側で動作するJavaScriptに座標が埋め込まれているのでworldmap.jsを書き換えると良い。그렇습니다.
만약 소스를 바꾸지 않고 초기의 위치를 자유롭게 바꿀 수 있다면 나는 매우 기쁠 것이다...
이렇게 생각하면 해결되니까 이 기사를 쓰기로 했어요.

■(1)현상


영국 지도가 표시되는 시간은 매우 짧고, 서로 다른 위치의 지도는 표시로 전환된다.
(통신상황에 따라 영국 지도가 표시되지 않는 경우도 있다)
대체로 아래와 같다.
(1-1)→(1-2) 서로 다른 지도를 볼 수 있기 때문에 가끔 불협화음을 느낄 수 있다.

(1-1) 브라우저를 통해wordmap에 접근합니다.


JavaScript에 포함된 정보에 따라 흑백 영국이 표시됩니다.

(1-2) 브라우저가 백엔드(노드 RED)의 웹소켓과 통신을 시작합니다.


표시 위치와 확대율을 얻어 프로세스 설정의 지도를 다시 업데이트합니다.

■(2) 개요 수정


동작에 관해서는 3시 정도 수정되었습니다.

(2-1) 전단 제거


아래의 방침.
(1-1)에서는 원하는 지도가 뚜렷하게 표시되지 않기 때문에 (1-1)에서는 지도가 표시되지 않습니다.
(1-2) 정상적일 때 반드시 발생하기 때문에 이 시간에 지도를 표시한다.

(2-2) 스토리지 초기 표시 위치


월드맵 흐름에 다음 정보를 입력하면 지도의 표시 위치를 변경할 수 있습니다.
이 값을 기억하십시오. 새 월드맵을 열 사용자는 마지막으로 보내는command 값에 처음 표시됩니다.

msg.payload = { 
    command : { 
        lat:36.68946, 
        lon:139.69187, 
        zoom:12
    } 
};
return msg;
그렇지만세션을 설정할 때 세션마다 개별적인 지시이기 때문에 저장하지 않습니다.
또한 브라우저를 다시 불러올 때 세션이 새로 생성되어 재연결을 식별할 수 없습니다
세션 사이의 정보를 기록하지 않습니다.

(2-3) 초기 위치 업데이트 메시지 추가

msg.payload.command를 사용하여 월드맵을 여는 모든 사용자의 디스플레이 위치가 변경됩니다.
따라서 초기 디스플레이 위치만 업데이트하고 월드맵을 새로 연 사람의 초기 디스플레이 위치만 업데이트하는 명령이 추가되었습니다.
msg.payload = { 
    preset : { 
        lat:36.68946, 
        lon:139.69187, 
        zoom:14
    } 
};
return msg;

■(3) 도입 절차


공식에서 수정되지 않았기 때문에 다음 절차에 따라 절차를 바꿔야 한다.
소스 코드를 직접 수정할 수 있음
대체로 다음 순서에 따라 도입한다.

(3-1) 노드 RED의 데이터 폴더로 이동합니다.


환경에 따라 장소도 다르니 주의하세요!
$ cd ~/.node-red/node_modules

(3-2) 신중을 위해 node-red-contrib-web-worldmap을 백업합니다.

$ mv node-red-contrib-web-worldmap node-red-contrib-web-worldmap_org

(3-3) 대책을 세운 node-red-contrib-web-worldmap.

$ git clone -b initial-position https://github.com/t-kawamorita/RedMap.git node-red-contrib-web-worldmap

(3-4) 필요한 프로그램 라이브러리를 설치합니다.

$ cd node-red-contrib-web-worldmap
$ npm install

(3-5) 노드 RED를 다시 시작합니다.


평소 절차에 따라 Node-RID를 재부팅하십시오.
다음은 Raspberry PI4를 사용할 때의 명령 예입니다.
$ node-red-start

■(4)끝.


나 개인적으로는 이렇게 하면 되지 않겠는가?이 점을 감안하여 나는 수정을 시도해 보았다.
사용 방법의 오류로 인해 잘못된 수정이 진행되었습니다!만약 이런 일이 있었다면 나에게 메시지를 남길 수 있다면 나는 매우 기뻤을 것이다.
소스는여기..
차점을 확인하고 싶은 경우여기.였다.
나는 당신의 의견을 얻은 후에 다시 요구를 제기하고 싶습니다.

좋은 웹페이지 즐겨찾기