TEXT   56
work for map
Guest on 30th April 2022 11:44:23 PM

1. ) Suppose the map is to be 1000x800 pixels.  We want to do a map of just Japan.
2. Where is the southernmost point of japan plotted?
3.
4.
5. Find the point
6.   select * from edges where Polygon in (select polygon from polygons where code = "ja") order by latitude limit 1;
7.    +---------+------+-----------+------------+
8.    | Polygon | Edge | Latitude  | Longitude  |
9.    +---------+------+-----------+------------+
10.    |     560 |  278 | 28.022601 | 116.984001 |
11.    +---------+------+-----------+------------+
12.
13.
14. Find the edges of the map
15.    select min(latitude), min(longitude), max(latitude), max(longitude) from edges where Polygon in (select polygon from polygons where code = "ja") ;
16.    +---------------+----------------+---------------+----------------+
17.    | min(latitude) | min(longitude) | max(latitude) | max(longitude) |
18.    +---------------+----------------+---------------+----------------+
19.    |     28.022601 |     116.172001 |     48.574901 |     125.048001 |
20.    +---------------+----------------+---------------+----------------+
21.
22.
23. Use the formula
24.    x = width * (lon - min_lon) / (max_lon - min_lon)
25.    x = 1000 * (116.984001 - 116.172001) / (125.048001 - 116.172001)
26.    x = 91.48
27.
28.    y = height - height * (lat - min_lat) / (max_lat - min_lat)
29.    y = 800 - 800 * ( 28.022601 - 28.022601) / (28.022601 - 48.574901)
30.    y = 0;

Raw Paste

or to edit or fork this paste. It's free.