Skip to content

Commit

Permalink
back up and running for #211 and #239
Browse files Browse the repository at this point in the history
  • Loading branch information
SymbolixAU committed Jan 23, 2020
1 parent 57a22b4 commit 1ee8514
Showing 1 changed file with 9 additions and 89 deletions.
98 changes: 9 additions & 89 deletions inst/htmlwidgets/mapdeck.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,108 +74,28 @@ HTMLWidgets.widget({
//onLayerHover: setTooltip
onViewStateChange: ({viewId, viewState, interactionState}) => {

//console.log("view");
//console.log(view);

//var lngLat = [144, -37];
//var pos = [5,2];
//console.log( deck.WebMercatorViewport.getMapCenterByLngLatPosition({ lngLat, pos }) );
//console.log( deck.getMapCenterByLngLatPosition( viewState ) );
//var vp = new deck.WebMercatorViewport({viewState});
//console.log( vp );
//console.log( deck.WebMercatorViewport );
//console.log( viewId );
//console.log( viewState );
//console.log( interactionState );
//return;

if (!HTMLWidgets.shinyMode && !x.show_view_state ) { return; }
// as per:
// https://github.com/uber/deck.gl/issues/3344
// https://github.com/SymbolixAU/mapdeck/issues/211
//console.log("viewState");
//console.log( viewState );
const viewport = new deck.WebMercatorViewport({viewState});
//console.log("viewport");
//console.log( viewport );

//console.log("initialViewState");
//console.log(initialViewState);

//console.log("dimensions: " );
//console.log( getDimensions( 800, 900 ) );

// 'project()' functions take lon/lat inputs
// 'unproject()' functions take x/y (screen) inputs
var lonlat_center = [ viewState.longitude, viewState.latitude ];
var xy_center = viewport.projectFlat( lonlat_center );

var xy_wh = [ viewState.width, viewState.height ];
var lonlat_wh = viewport.unprojectFlat( [ viewState.width, viewState.height ] );
//var minX = projected_center[0] - viewport.width;
//var minY = projected_center[1] - viewport.height;

//var projXY = viewport.unprojectFlat( [minX, minY] );

//var lonlat_wh = viewport.unprojectFlat( [viewState.width, viewState.height, viewState.zoom ]);


//var maxY = lonlat_wh[1] - xy_center[1];
//var minY = projected_center[1] - maxY;
const viewport = new deck.WebMercatorViewport(viewState);
const nw = viewport.unproject([0, 0]);
const se = viewport.unproject([viewport.width, viewport.height]);

//const nw = viewport.unproject([0, 0]);
//const se = viewport.unproject([viewport.width, viewport.height]);
const w = nw[0] < -180 ? -180 : ( nw[0] > 180 ? 180 : nw[0] );
const n = nw[1] < -90 ? -90 : ( nw[1] > 90 ? 90 : nw[1] );

//const nw = viewport.unprojectFlat([0, 0]);
//const se = viewport.unprojectFlat([viewState.width, viewState.height]);
const e = se[0] < -180 ? -180 : ( se[0] > 180 ? 180 : se[0] );
const s = se[1] < -90 ? -90 : ( se[1] > 90 ? 90 : se[1] );

//console.log( nw );
//console.log( se );

//const w = nw[0] < -180 ? -180 : ( nw[0] > 180 ? 180 : nw[0] );
//const n = nw[1] < -90 ? -90 : ( nw[1] > 90 ? 90 : nw[1] );

//const e = se[0] < -180 ? -180 : ( se[0] > 180 ? 180 : se[0] );
//const s = se[1] < -90 ? -90 : ( se[1] > 90 ? 90 : se[1] );

var east = viewState.width - xy_center[0];
var rightEdgeY = xy_center[1];
var rigthEdgeLonLat = viewport.unprojectFlat( [rightEdgeX, rightEdgeY] );

var val;

val = {
//lonlat_center: lonlat_center,
//xy_center: viewport.projectFlat( lonlat_center ),
//xy_wh: xy_wh,
//lonlat_wh: lonlat_wh,
//viewPort: viewport,
viewState: viewState,
xyz: viewport.projectFlat( [viewState.longitude, viewState.latitude ]),
rightEdge: [rightEdgeX, rightEdgeY],
rigthEdgeLonLat: rigthEdgeLonLat
//getDistanceScales: viewport.getDistanceScales()
//getCameraPosition: viewport.getCameraPosition(),
//getCameraDirection: viewport.getCameraDirection(),
//getCameraUp: viewport.getCameraUp()
//maxY: maxY,
//minY: minY
};

var vs = JSON.stringify( val, null, 2 );
window[el.id + 'mapViewState'].innerHTML = vs;

return;

/*
viewState.viewBounds = {
viewState.viewBounds = {
north: n, //nw[1],
east: e, //se[0],
south: s, //se[1],
west: w //nw[0]
};
viewState.interactionState = interactionState;
*/

if( x.show_view_state ) {
var vs = JSON.stringify( viewState );
//console.log( vs );
Expand Down

0 comments on commit 1ee8514

Please sign in to comment.