The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

44

I found this response - written by a Google employee - this would probably be the most accurate one: This won't be accurate, because the resolution of a map with the mercator projection (like Google maps) is dependent on the latitude. It's possible to calculate using this formula: metersPerPx = 156543.03392 * Math.cos(latLng.lat() * Math.PI / 180) / ...


18

Yes, it is possible. What you need is rule-based Styling with a scale rule as shown in the image (sorry for german layout) It looks like this when you zoom in and out : keep in mind, that when you zoom out of the defined zoom levels, the layer won't be shown. EDIT: To have different styles within a category you can refine the rules by right-clicking ...


17

Assuming you are talking about a map of the world in Mercator Projection, Something like this: Then, You should know that not all pixels will represent the same area. There is a large amount of distortion as you move towards the poles, the area represented by each pixel will decrease. Tissot's indicatrices show a good visual representation of the ...


15

I don't think there's an option yet which allows you to put the units below the scalebar. An alternative could be to: Modify your current scalebar and set its Font colour to match the background colour: Item Properties > Fonts and colours > Font colour Copy your scalebar and paste it directly below your original scalebar. Then set its Font colour to ...


12

Straightforward authoritative correct answer: 591657550.500000 / 2^(level-1) it gives you the table above, entering the zoom level. Try it live on jsfiddle.net Because the question is only for Google MAPS, not EARTH, the OP doesn't care about 3D geometry. Google maps are ALREADY flattened so 1 pixel is always the same distance (in DEGREES, which is what ...


12

@Gerardo's answer is only correct at the equator. The gdaldem doc notes those scale values are for "LatLong projections near the equator" To calculate the scale or Z factor (inverse of scale) at other latitudes for a dem with vertical units in metres, you can use the following equations: s=111320*cos(latitude*pi/180) z=1/(111320*cos(latitude*pi/180)) ...


11

As the scale is a ratio, it doesn't have units itself. You can measure whatever you like on the map - one inch, one foot, one double-decker bus - and it will represent 6000 of the same unit in reality. To give the scale in mixed units, you just have to know what 6000 inches are in feet - OnlineConversion tells me it's 500 feet - so you'd have 1 inch = 500 ...


10

Degrees of longitude get smaller as you move away from the equator, eventually going to 0 at the poles; degrees of latitude don't suffer the same fate (looking at the latitude and longitude lines on a globe will make this clearer). Projecting your data to a coordinate system should solve the problem, because feet and meters don't change in size as you move ...


10

You need to use Rule based style to set the scale for primary, secondary and tertiary network, as you can see below (but with different data): You can double-click each styled label to get more details:


9

As @StephenLead said, ArcMap will Reproject your datasets on-the-fly. What is most critical is that each of your Datasets have the appropriate Coordinate System set beforehand. The other critical item is that you set the Coordinate System of your Data Frame. There are differing opinions as to what this should be set to, but a good rule is to set it to ...


9

Ok, with some initial issues cleared out the task is relatively simple. Scale, prepresented as f.ex 1:50000 means that one unit on the map corresponds to 50.000 units in the real world. For a paper map printed a scale of 1:50000 this means that 1 meter on the map corresponds to 50.000 meters in the real world, or to make it easier: 1 cm on the map ...


9

You can get the current zoom level using getZoom(). Assuming that you're using the tile layer system as used by Google Maps, Bing, Open Street Map and Esri, you can use that to infer the scale - see What ratio scales do Google Maps zoom levels correspond to? If you're not using that tile system, you may need to find another way to infer the scale from the ...


9

EPSG:3857 doesn't conserve distances so this will depend on where on the earth you are mapping - I think the scale is calculated at the Equator. The easiest fix for this is to switch to an equidistant projection like: EPSG:102014 or other depending on your region of interest.


8

You achieve this by having multiple data frames Working with additional data frames Then setting a difference reference scale per data frame. While in many maps, you'll only need one data frame, you can add more data frames by clicking Insert > Data Frame on the main menu. You can remove a data frame by right-clicking the data frame name in the table of ...


8

If you want to increase the size of a feature, you can use the Scale tool in ArcMap. It's an Editor tool but it's not on the toolbar by default, you'll need to add it using the Customize option for toolbars. It can be found under the Editor category: You can scale up your features by a Scale Factor by selecting your features, activating the Scale tool, ...


7

Radius @ Equator 6,378,137 meters exact (WGS-84) Circumference at Equator = 40,075,017 meters (2πr) Zoom level 24 uses 2 to the 32 power (4,294,967,296) pixels at circumference. Equatorial Circumference / 2 32 = .009330692 meters per pixel Unit at Latitude = (Cosine of Latitude) X (Unit at Equator) Zoom level doubles each increment. 1 foot (...


7

I do not think you can do this in ArcGIS 10 without having copies of layers ontop of each other in the TOC with different drawing scales set. It would be nice if you could set different symbology classes like you can do for labeling. Below is a thread that is similiar to yours. http://forums.arcgis.com/threads/23529-Change-Feature-Symbology-at-different-...


7

How you'll go about solving this problem really depends on the case, and how important the actual topology is to you (versus just the visuals/rendering time). Since your final goal is to generalize coastlines, you may find some ideas on generalization useful. One approach uses buffering, as seen here. I also had a similar problem a while ago and detailed my ...


7

Once you are happy with the size of your scale bar you can right-click and convert to graphics, then the rotate and flip options are available in the drop-down menu. Just be sure not to accidentally resize it, the scale will no longer be accurate.


7

Rasters don't really have a scale, they have a resolution, which in your case is 200m. You can calculate an appropriate viewing scale for a given raster resolution based on the ability to distinguish features. The ArcGIS Blog post On map scale and raster resolution discusses this: In 1987, Waldo Tobler, renowned analytical cartographer (now emeritus ...


7

Not at all. When you have some data that was digitized at 1:100,000, it excluded smaller features, which were smaller than the Minimum Mappable Area. For example, suppose you are dealing with topographic data.At 1:100,000 you would exclude large streams and trees.These features are visible at 1:24,000, and should be included in such a map. If you just ...


6

The simple answer is no. You are right in adding multiple layers referencing the same GIS Resource is the way to go. In addition to this if you were to have the 2 resultant layer in a Group Layer then you can control them as if they are a single for some things. This is the workflow I have always used, and one I also use for the generation of Map Services as ...


6

Do you have your "backdrop (raster)"? If yes, then there is two options: it is georeferenced (in some non-earth coordinate system). Then everything is ok and you have just to use it with your vector data (if you have it already) or draw vector "polygons that will represent the rooms" using your raster as a background layer. In first case may be you will ...


6

Under the layer properties>labels tab you can setup multiple labeling classes (under the Method drop down) for your labeling scales. Labels can be rendered by query using the SQL Query button for each class. You can also use the Scale Range button to show or not show a certain class within certain scale ranges.


6

it is important to have all features within a map using the same GCS and projection? Is this correct, or can I work across multiple GCS? ArcMap will re-project your datasets on-the-fly if you have correctly set the coordinate systems beforehand. (There can be a performance hit from this, especially with rasters, but it will work.) When I attempt to use ...


6

You must set the Project CRS to a projected CRS, for example the UTM zone for your part of the world. Thats different to the layers CRS, which might remain in degrees. Measurement tool and scale bar look only at the project CRS, as long as on-the--fly-projection is enabled.


6

You have to decide whether you want to enter coordinates in lat/lon, or from a background map with a projected CRS (e.g. in metres). For the first choice, you have to set the target CRS to WGS84 (EPSG:4326), and don't mix up lat and long values. For the second choice, the target CRS must be set to the same CRS as the project CRS. This can be different from ...


6

I have test it a bit and seems to work correct. Inspired from this var res = getResolutionFromScale(200000); alert(res); function getResolutionFromScale(scale){ var units = map.getView().getProjection().getUnits(); var dpi = 25.4 / 0.28; var mpu = ol.proj.METERS_PER_UNIT[units]; var resolution = scale/(mpu * 39.37 * dpi); return ...


6

First, a note about map scales. A map scale represented as a unitless factor (e.g. 1:50000) means that a map unit represents X map units (e.g. a meter in the map = 50 km in reality). This kind of scale is simply impossible to achieve in web maps, as you cannot be sure of the physical screen size. Think about a laptop connected to a projector screen, having ...


6

I have to say that what you are requesting is complicated a little bit because you want the labeling to be visible at small scale clearly as well as at large scale (best fit). So, the idea here is how to place the point that can be visible at different scales. After several testing, I found that instead of creating several columns for each scale range and ...


Only top voted, non community-wiki answers of a minimum length are eligible