dojo.connect(map, "onExtentChange", updateExtent); dojo.connect(window, 'resize', mapResize); pixelPerMeter = 96/.0254; // Define pixel per meter value (96 pixels per inch) function mapResize(){ var resizeTimer; clearTimeout(resizeTimer); resizeTimer = setTimeout(function(){ sizeMap(); map.resize(); map.reposition(); }, 500); } function sizeMap(){ mapWidthPx = window.innerWidth; // Using 57 pixels for control/information bars mapHeightPx = window.innerHeight - 57; // Set calculated height for mapDiv $("#map").css({"height" : (mapHeightPx + "px")}); } function updateExtent(evt){ mapScale = calcScale(evt.xmax, evt.xmin, evt.ymax, evt.ymin); displayMapScale(mapScale); // Write map scale out to } function calcScale(maxX, minX, maxY, minY) { var meterX = Math.abs(maxX - minX); var meterY = Math.abs(maxY - minY); var scaleX = meterX / mapWidthPx * pixelPerMeter; var scaleY = meterY / mapHeightPx * pixelPerMeter; var scaleMin = Math.round((scaleY>scaleX)?scaleX:scaleY); return scaleMin; }
var scalebarLengthInPixel = scalebar.domNode.style.width; // For example, you may get "112px" as returned value var scalebarLengthInReality = dojo.query(".esriScalebarSecondNumber", scalebar.domNode)[0].innerHTML; //you may get "300mi" as returned value
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.