Maplat Core에서 API에서 지도 표시 간 전환
오늘 움직이는 것은 여기에서 확인할 수 있습니다. => CodeSandBox Maplat Advent Calendar day 5
우선, 지도를 전환하는 버튼을 추가하기 위해
html
와 css
에 조금 손을 넣자.index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Maplat Advent Calendar Day5</title>
<link rel="stylesheet" href="app.css" />
</head>
<body>
<div class="mainview">
<div id="map_div"></div>
</div>
<div class="button">
<button id="gsi">GSI</button>
<button id="osm">OSM</button>
<button id="ojo">御城図</button>
<button id="aki">秋元</button>
</div>
</body>
<script src="app.js"></script>
</html>
app.css
.mainview {
position: absolute;
top: 5%;
bottom: 5%;
left: 5%;
right: 5%;
}
.button {
position: absolute;
top: 95%;
bottom: 0%;
left: 5%;
right: 5%;
}
흠, "나는
css
서투르다"라는 것이 한결같이 전해진다 css
네요.그렇게 하는 것은 지도 영역 바로 아래에 버튼 4개 늘어놓은 것입니다.
이어서 모처럼 지도를 전환하기 때문에 지도의 수도 조금 늘려 2개에서 4개로 해봅시다.
apps/maplat_ac_day5.json
{
"home_position": [139.5321, 36.249302],
"default_zoom": 17,
"start_from": "tatebayashi_ojozu",
"sources": [
{
"mapID": "tatebayashi_ojozu",
"setting_file": "https://s.maplat.jp/r/tatebayashimap/maps/tatebayashi_ojozu.json"
},
{
"mapID": "tatebayashi_castle_akimoto",
"setting_file": "https://s.maplat.jp/r/tatebayashimap/maps/tatebayashi_castle_akimoto.json"
},
"osm",
"gsi"
]
}
보시다시피
tatebayashi_castle_akimoto
와 gsi
의 두 가지지도 설정이 sources
에 추가되었습니다.tatebayashi_castle_akimoto
는 푸라토 다테바야시 에서 역시 정의되고 있는 아키모토가 지배 시대의 다테바야시성의 그림입니다.오늘 역시 지도 자체의 설정 파일에 대한 자세한 설명은 나중에 돌립니다.
gsi
는 osm
유사한 설정이 사전 설정된 기본 지도로 지리원 지도를 나타냅니다.이 네 개의 지도 사이에서 디스플레이를 전환해 봅시다.
Javascript
로직은 이런 느낌이 됩니다.app.js
import "@maplat/core/dist/maplat_core.css";
import { MaplatApp } from "@maplat/core";
var option = {
appid: "maplat_ac_day5"
};
var app = new MaplatApp(option);
app.waitReady.then(function() {
document.getElementById("gsi").addEventListener("click", function(e) {
app.changeMap("gsi");
});
document.getElementById("osm").addEventListener("click", function(e) {
app.changeMap("osm");
});
document.getElementById("ojo").addEventListener("click", function(e) {
app.changeMap("tatebayashi_ojozu");
});
document.getElementById("aki").addEventListener("click", function(e) {
app.changeMap("tatebayashi_castle_akimoto");
});
});
app.waitReady
에서 Maplat 앱이 작동 준비가 될 때까지 기다린 후 각 버튼에 click
이벤트 핸들러가 주어지고 해당 콜백에서 app.changeMap({mapid});
의 API가 호출됩니다.이렇게하면 다음과 같이 API를 통한지도 전환이 가능합니다.
잠깐, 앱처럼 되어 왔어요!
내일은 드디어 마커에서도 표시시키고 싶습니다.
Reference
이 문제에 관하여(Maplat Core에서 API에서 지도 표시 간 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kochizufan/items/b6e6b6a88ad27aa14371텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)