definicao de layout
This commit is contained in:
487
public/assets/js/map-js/custom.js
Normal file
487
public/assets/js/map-js/custom.js
Normal file
@@ -0,0 +1,487 @@
|
||||
// Common settings
|
||||
var platform = new H.service.Platform({
|
||||
app_id: 'devportal-demo-20180625',
|
||||
app_code: '9v2BkviRwi9Ot26kp2IysQ',
|
||||
useHTTPS: true
|
||||
});
|
||||
var pixelRatio = window.devicePixelRatio || 1;
|
||||
var defaultLayers = platform.createDefaultLayers({
|
||||
tileSize: pixelRatio === 1 ? 256 : 512,
|
||||
ppi: pixelRatio === 1 ? undefined : 320
|
||||
});
|
||||
|
||||
|
||||
//map 1
|
||||
function moveMapToBerlin(map){
|
||||
map.setCenter({lat:52.5159, lng:13.3777});
|
||||
map.setZoom(14);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map1'),
|
||||
defaultLayers.normal.map, {pixelRatio: pixelRatio});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
moveMapToBerlin(map);
|
||||
|
||||
|
||||
// map2
|
||||
function setMapViewBounds(map){
|
||||
var bbox = new H.geo.Rect(42.3736,-71.0751,42.3472,-71.0408);
|
||||
map.setViewBounds(bbox);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map2'),
|
||||
defaultLayers.normal.map, {pixelRatio: pixelRatio});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
setMapViewBounds(map);
|
||||
|
||||
// map3
|
||||
function switchMapLanguage(map, platform){
|
||||
var mapTileService = platform.getMapTileService({
|
||||
type: 'base'
|
||||
}),
|
||||
chineseMapLayer = mapTileService.createTileLayer(
|
||||
'maptile',
|
||||
'normal.day',
|
||||
pixelRatio === 1 ? 256 : 512,
|
||||
'png8',
|
||||
{lg: 'CHI', ppi: pixelRatio === 1 ? undefined : 320}
|
||||
);
|
||||
map.setBaseLayer(chineseMapLayer);
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers, 'zh-CN');
|
||||
ui.removeControl('mapsettings');
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map3'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:22.2783, lng:114.1588},
|
||||
zoom: 12,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
switchMapLanguage(map , platform);
|
||||
|
||||
// map4
|
||||
function switchMapType(map, platform){
|
||||
var aerialMapTileService = platform.getMapTileService({
|
||||
type: 'aerial'
|
||||
});
|
||||
terrainMap = aerialMapTileService.createTileLayer(
|
||||
'maptile',
|
||||
'terrain.day',
|
||||
pixelRatio === 1 ? 256 : 512,
|
||||
'png8',
|
||||
{ppi: pixelRatio === 1 ? undefined : 320}
|
||||
);
|
||||
map.setBaseLayer(terrainMap);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map4'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:27.98805, lng:86.9250},
|
||||
zoom: 10,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
ui.removeControl('mapsettings');
|
||||
switchMapType(map, platform);
|
||||
|
||||
// map5
|
||||
function useImperialMeasurements(map, defaultLayers){
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
ui.setUnitSystem(H.ui.UnitSystem.IMPERIAL);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map5'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:42.3572, lng:-71.0596},
|
||||
zoom: 14,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
useImperialMeasurements(map, defaultLayers);
|
||||
|
||||
// map6
|
||||
function panTheMap(map) {
|
||||
var viewPort,
|
||||
incX = 1,
|
||||
incY = 2,
|
||||
x = 100,
|
||||
y = 100;
|
||||
var viewPort = map.getViewPort(),
|
||||
pan = function() {
|
||||
x = x + incX;
|
||||
if (Math.abs(x) > 100) {
|
||||
incX = -incX;
|
||||
}
|
||||
|
||||
y = y + incY;
|
||||
if (Math.abs(y) > 100) {
|
||||
incY = -incY;
|
||||
}
|
||||
|
||||
viewPort.interaction(x, y);
|
||||
};
|
||||
viewPort.startInteraction(H.map.render.RenderEngine.InteractionModifiers.COORD);
|
||||
setInterval(pan, 10);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map6'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat: 19.11, lng: 72.89},
|
||||
zoom: 4,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
panTheMap(map);
|
||||
|
||||
// map7
|
||||
function useImperialMeasurements(map, defaultLayers){
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
ui.setUnitSystem(H.ui.UnitSystem.IMPERIAL);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map7'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:42.3572, lng:-71.0596},
|
||||
zoom: 14,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
useImperialMeasurements(map, defaultLayers);
|
||||
|
||||
|
||||
// map 8
|
||||
function addVenueLayer(map, platform, renderControls) {
|
||||
var customVenueLayer = platform.getVenueService().createTileLayer({
|
||||
onSpaceCreated: onSpaceCreated
|
||||
});
|
||||
var venueProvider = customVenueLayer.getProvider();
|
||||
map.addLayer(customVenueLayer);
|
||||
renderControls('Change floor', {
|
||||
'+1 Level': function () {
|
||||
venueProvider.setCurrentLevel(venueProvider.getCurrentLevel() + 1);
|
||||
},
|
||||
'-1 Level': function () {
|
||||
venueProvider.setCurrentLevel(venueProvider.getCurrentLevel() - 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
function onSpaceCreated(space) {
|
||||
if (space.getData().preview === 'H&M') {
|
||||
space.setStyle({
|
||||
fillColor: 'rgba(0,255,0,0.3)'
|
||||
});
|
||||
}
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map8'), defaultLayers.normal.map, {
|
||||
center: new H.geo.Point(52.5189, 13.4158),
|
||||
zoom: 17,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers, 'en-US');
|
||||
function renderControls(title, buttons) {
|
||||
var containerNode = document.createElement('div');
|
||||
containerNode.innerHTML = '<h4 class="title">' + title + '</h4><div class="btn-group"></div>';
|
||||
containerNode.setAttribute('style',
|
||||
'position:absolute;top:0;left:0;background-color:#fff; padding:10px;text-align:center');
|
||||
Object.keys(buttons).forEach(function (label) {
|
||||
var input = document.createElement('input');
|
||||
input.value = label;
|
||||
input.type = 'button';
|
||||
input.onclick = buttons[label];
|
||||
input.className="btn btn-sm btn-default"
|
||||
containerNode.lastChild.appendChild(input);
|
||||
});
|
||||
map.getElement().appendChild(containerNode);
|
||||
}
|
||||
addVenueLayer(map, platform, renderControls);
|
||||
|
||||
// map9
|
||||
function setUpCustomZooming(map) {
|
||||
var clevelandCircle = new H.map.Circle(
|
||||
new H.geo.Point(41.4822, -81.6697), //center
|
||||
11703,
|
||||
{style: {fillColor: 'rgba(0, 255, 221, 0.66)'}}
|
||||
);
|
||||
var torontoCircle = new H.map.Circle(
|
||||
new H.geo.Point(43.7000, -79.4000), //center
|
||||
75090,
|
||||
{style: {fillColor: 'rgba(0, 255, 221, 0.66)'}}
|
||||
);
|
||||
var chicagoCircle = new H.map.Circle(
|
||||
new H.geo.Point(41.8369, -87.6847), //center
|
||||
81570,
|
||||
{style: {fillColor: 'rgba(0, 221, 255, 0.66)'}}
|
||||
);
|
||||
var newYorkCircle = new H.map.Circle(
|
||||
new H.geo.Point(40.7127, -74.0059), //center
|
||||
252180,
|
||||
{style: {fillColor: 'rgba(221, 0, 255, 0.66)'}}
|
||||
);
|
||||
clevelandCircle.setData({maxZoom: 7});
|
||||
torontoCircle.setData({maxZoom: 5});
|
||||
chicagoCircle.setData({maxZoom: 5});
|
||||
newYorkCircle.setData({maxZoom: 4});
|
||||
var container = new H.map.Group({
|
||||
objects: [clevelandCircle, torontoCircle, chicagoCircle, newYorkCircle]
|
||||
});
|
||||
container.addEventListener('tap', function (evt) {
|
||||
var target = evt.target;
|
||||
var maxZoom = target.getData().maxZoom;
|
||||
var cameraData = map.getCameraDataForBounds(target.getBounds());
|
||||
map.setZoom(Math.min(cameraData.zoom, maxZoom), true);
|
||||
map.setCenter(cameraData.position, true);
|
||||
});
|
||||
map.addObject(container);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map9'), defaultLayers.normal.map, {
|
||||
center: new H.geo.Point(41.4822, -81.6697),
|
||||
zoom: 4,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
setUpCustomZooming(map);
|
||||
|
||||
// map10
|
||||
function restrictMap(map){
|
||||
var bounds = new H.geo.Rect(37.829, -122.426, 37.824, -122.42);
|
||||
map.getViewModel().addEventListener('sync', function() {
|
||||
var center = map.getCenter();
|
||||
if (!bounds.containsPoint(center)) {
|
||||
if (center.lat > bounds.getTop()) {
|
||||
center.lat = bounds.getTop();
|
||||
} else if (center.lat < bounds.getBottom()) {
|
||||
center.lat = bounds.getBottom();
|
||||
}
|
||||
if (center.lng < bounds.getLeft()) {
|
||||
center.lng = bounds.getLeft();
|
||||
} else if (center.lng > bounds.getRight()) {
|
||||
center.lng = bounds.getRight();
|
||||
}
|
||||
map.setCenter(center);
|
||||
}
|
||||
});
|
||||
map.addObject(new H.map.Rect(bounds, {
|
||||
style: {
|
||||
fillColor: 'rgba(55, 85, 170, 0.1)',
|
||||
strokeColor: 'rgba(55, 85, 170, 0.6)',
|
||||
lineWidth: 8
|
||||
}
|
||||
}
|
||||
));
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map10'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:37.82667, lng:-122.423333},
|
||||
zoom: 16,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
map.setBaseLayer(defaultLayers.satellite.map);
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers, 'en-US');
|
||||
restrictMap(map);
|
||||
|
||||
// map11
|
||||
var PHI = 0.9005,
|
||||
omega = 4.1214,
|
||||
t = 0,
|
||||
tick = 0,
|
||||
x = 0,
|
||||
lastZoom = NaN;
|
||||
function drawGroundTrack(x, t, zoom, radius, ctx, projection, screenCenter) {
|
||||
ctx.beginPath();
|
||||
for (var i = 1024; i >= 0; i--) {
|
||||
if (x <= 0) {
|
||||
x = projection.w;
|
||||
ctx.stroke();
|
||||
ctx.beginPath();
|
||||
}
|
||||
y = radius * Math.sin(omega * t + PHI);
|
||||
x -= Math.pow(2, zoom);
|
||||
pX = x - projection.x + screenCenter.x;
|
||||
pY = y + (projection.w / 2) - projection.y + screenCenter.y;
|
||||
ctx.lineTo(pX, pY);
|
||||
t -= 0.007;
|
||||
}
|
||||
ctx.stroke();
|
||||
}
|
||||
function renderCallback(ctx, renderParams) {
|
||||
var zoom = renderParams.zoom,
|
||||
projection = renderParams.projection,
|
||||
screenCenter = renderParams.screenCenter,
|
||||
radius = Math.pow(2, (projection.exp + zoom)) / (2 * Math.PI),
|
||||
y,
|
||||
pX,
|
||||
pY;
|
||||
if (isNaN(lastZoom)) {
|
||||
lastZoom = zoom;
|
||||
}
|
||||
ctx.strokeStyle = 'yellow';
|
||||
if (zoom !== lastZoom) {
|
||||
x = tick * Math.pow(2, zoom);
|
||||
}
|
||||
x += Math.pow(2, zoom);
|
||||
y = radius * Math.sin(omega * t + PHI);
|
||||
pX = x - projection.x + screenCenter.x;
|
||||
pY = y + (projection.w / 2) - projection.y + screenCenter.y;
|
||||
ctx.moveTo(pX - 10, pY - 10);
|
||||
ctx.lineTo(pX + 10, pY + 10);
|
||||
ctx.moveTo(pX + 10, pY - 10);
|
||||
ctx.lineTo(pX - 10, pY + 10);
|
||||
ctx.stroke();
|
||||
if (lastZoom === zoom) {
|
||||
drawGroundTrack(x, t, zoom, radius, ctx, projection, screenCenter);
|
||||
}
|
||||
lastZoom = zoom;
|
||||
tick += 1;
|
||||
t += 0.007;
|
||||
if (tick > 256) {
|
||||
tick = 0;
|
||||
x = 0;
|
||||
}
|
||||
return H.map.render.RenderState.ACTIVE;
|
||||
}
|
||||
function addCanvasOverlay(map, platform){
|
||||
var canvasLayer = new H.map.layer.CanvasLayer(renderCallback)
|
||||
map.addLayer(canvasLayer);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map11'),
|
||||
defaultLayers.satellite.map,{
|
||||
center: {lat: 0, lng: 0},
|
||||
zoom: 1,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
ui.removeControl('mapsettings');
|
||||
addCanvasOverlay(map, platform);
|
||||
|
||||
// map12
|
||||
function addMarkersToMap(map) {
|
||||
var parisMarker = new H.map.Marker({lat:48.8567, lng:2.3508});
|
||||
map.addObject(parisMarker);
|
||||
|
||||
var romeMarker = new H.map.Marker({lat:41.9, lng: 12.5});
|
||||
map.addObject(romeMarker);
|
||||
|
||||
var berlinMarker = new H.map.Marker({lat:52.5166, lng:13.3833});
|
||||
map.addObject(berlinMarker);
|
||||
|
||||
var madridMarker = new H.map.Marker({lat:40.4, lng: -3.6833});
|
||||
map.addObject(madridMarker);
|
||||
|
||||
var londonMarker = new H.map.Marker({lat:51.5008, lng:-0.1224});
|
||||
map.addObject(londonMarker);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map12'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:50, lng:5},
|
||||
zoom: 4,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
addMarkersToMap(map);
|
||||
|
||||
// map13
|
||||
function addDraggableMarker(map, behavior){
|
||||
var marker = new H.map.Marker({lat:42.35805, lng:-71.0636});
|
||||
marker.draggable = true;
|
||||
map.addObject(marker);
|
||||
map.addEventListener('dragstart', function(ev) {
|
||||
var target = ev.target;
|
||||
if (target instanceof H.map.Marker) {
|
||||
behavior.disable();
|
||||
}
|
||||
}, false);
|
||||
map.addEventListener('dragend', function(ev) {
|
||||
var target = ev.target;
|
||||
if (target instanceof mapsjs.map.Marker) {
|
||||
behavior.enable();
|
||||
}
|
||||
}, false);
|
||||
map.addEventListener('drag', function(ev) {
|
||||
var target = ev.target,
|
||||
pointer = ev.currentPointer;
|
||||
if (target instanceof mapsjs.map.Marker) {
|
||||
target.setPosition(map.screenToGeo(pointer.viewportX, pointer.viewportY));
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map13'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:42.35805, lng:-71.0636},
|
||||
zoom: 12,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers, 'en-US');
|
||||
addDraggableMarker(map, behavior);
|
||||
|
||||
|
||||
// map14
|
||||
function addPolylineToMap(map) {
|
||||
var lineString = new H.geo.LineString();
|
||||
lineString.pushPoint({lat:53.3477, lng:-6.2597});
|
||||
lineString.pushPoint({lat:51.5008, lng:-0.1224});
|
||||
lineString.pushPoint({lat:48.8567, lng:2.3508});
|
||||
lineString.pushPoint({lat:52.5166, lng:13.3833});
|
||||
map.addObject(new H.map.Polyline(
|
||||
lineString, { style: { lineWidth: 4 }}
|
||||
));
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map14'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:52, lng:5},
|
||||
zoom: 5,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
addPolylineToMap(map);
|
||||
|
||||
// map15
|
||||
function addPolygonToMap(map) {
|
||||
var lineString = new H.geo.LineString(
|
||||
[52, 13, 100, 48, 2, 100, 48, 16, 100, 52, 13, 100],
|
||||
'values lat lng alt'
|
||||
);
|
||||
map.addObject(
|
||||
new H.map.Polygon(lineString, {
|
||||
style: {
|
||||
fillColor: '#FFFFCC',
|
||||
strokeColor: '#829',
|
||||
lineWidth: 8
|
||||
}
|
||||
})
|
||||
);
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map15'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:52, lng:5},
|
||||
zoom: 5,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
addPolygonToMap(map);
|
||||
|
||||
// map16
|
||||
function addCircleToMap(map){
|
||||
map.addObject(new H.map.Circle(
|
||||
{lat:28.6071, lng:77.2127},
|
||||
1000,
|
||||
{
|
||||
style: {
|
||||
strokeColor: 'rgba(55, 85, 170, 0.6)', // Color of the perimeter
|
||||
lineWidth: 2,
|
||||
fillColor: 'rgba(0, 128, 0, 0.7)' // Color of the circle
|
||||
}
|
||||
}
|
||||
));
|
||||
}
|
||||
var map = new H.Map(document.getElementById('map16'),
|
||||
defaultLayers.normal.map,{
|
||||
center: {lat:28.6071, lng:77.2127},
|
||||
zoom: 13,
|
||||
pixelRatio: pixelRatio
|
||||
});
|
||||
var behavior = new H.mapevents.Behavior(new H.mapevents.MapEvents(map));
|
||||
var ui = H.ui.UI.createDefault(map, defaultLayers);
|
||||
addCircleToMap(map);
|
||||
BIN
public/assets/js/map-js/download.png
Normal file
BIN
public/assets/js/map-js/download.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
321
public/assets/js/map-js/mapsjs-core.js
Normal file
321
public/assets/js/map-js/mapsjs-core.js
Normal file
File diff suppressed because one or more lines are too long
1
public/assets/js/map-js/mapsjs-mapevents.js
Normal file
1
public/assets/js/map-js/mapsjs-mapevents.js
Normal file
File diff suppressed because one or more lines are too long
1
public/assets/js/map-js/mapsjs-service.js
Normal file
1
public/assets/js/map-js/mapsjs-service.js
Normal file
File diff suppressed because one or more lines are too long
1
public/assets/js/map-js/mapsjs-ui.js
Normal file
1
public/assets/js/map-js/mapsjs-ui.js
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user