WO2022260390A2 - Method for personalizing place being shown on initial screen of digital map and digital map system using same - Google Patents

Method for personalizing place being shown on initial screen of digital map and digital map system using same Download PDF

Info

Publication number
WO2022260390A2
WO2022260390A2 PCT/KR2022/007997 KR2022007997W WO2022260390A2 WO 2022260390 A2 WO2022260390 A2 WO 2022260390A2 KR 2022007997 W KR2022007997 W KR 2022007997W WO 2022260390 A2 WO2022260390 A2 WO 2022260390A2
Authority
WO
WIPO (PCT)
Prior art keywords
map
app
text message
parameters
recipient
Prior art date
Application number
PCT/KR2022/007997
Other languages
French (fr)
Korean (ko)
Other versions
WO2022260390A3 (en
Inventor
권경일
Original Assignee
에스360브이알
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스360브이알 filed Critical 에스360브이알
Publication of WO2022260390A2 publication Critical patent/WO2022260390A2/en
Publication of WO2022260390A3 publication Critical patent/WO2022260390A3/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/222Monitoring or handling of messages using geographical location information, e.g. messages transmitted or received in proximity of a certain spot or area
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/90Services for handling of emergency or hazardous situations, e.g. earthquake and tsunami warning systems [ETWS]

Definitions

  • the present invention can personalize the place shown on the initial screen of the digital map for each user, and furthermore, provides an easy way for the recipient to view the same map screen as the sender by sending the place shown on the screen of the digital map as a text message. do.
  • CDMA Code-Division Multiple Access
  • This advertisement was devised by a mobile phone manufacturer to comically appeal to the notion that 'its phones work everywhere.' Due to the sensational popularity of this advertisement, it has become a new trend to order and eat jajangmyeon at the beach, and it is said that many Chinese restaurants are still in business in Marado, not restaurants suitable for the beach, such as seafood soup restaurants and raw fish restaurants.
  • latitude, longitude, and altitude corresponding to the location of the smartphone can be obtained.
  • the latitude used in a smartphone or car navigation system is different from the latitude learned in elementary school. Since the latitude taught in textbooks describes latitude and longitude assuming that the earth's shape is a perfect sphere, the latitude that exists in our common sense is actually geocentric latitude. However, the latitude used in maps and GPS systems is called geodetic latitude.
  • Geodetic latitude reflects the fact that the Earth's shape approximates a rotational ellipsoid (ellipsoid of revolution, spheroid), or oblate spheroid, due to the rotation of the Earth on its axis.
  • ellipsoid of revolution spheroid
  • oblate spheroid due to the rotation of the Earth on its axis.
  • the shape of the earth is similar to a slightly flattened shape by pressing a volleyball ball with your hand.
  • the shape of the earth is not round like a grape or elongated like a melon, but flat like a tangerine.
  • This Earth ellipsoid is used as a reference ellipsoid when making maps.
  • 1 is a conceptual diagram for understanding the difference between geodetic latitude ⁇ and geocentric latitude ⁇ .
  • the center C of the Earth's ellipsoid is located at the center of mass of the Earth, and the error is said to be within 2 cm.
  • the Earth's rotation axis 102 passes through the Earth's center of mass. And two points where the earth's axis of rotation 102 meets the earth ellipsoid 101 are the north pole (NP) and the south pole (SP). Since the Earth's ellipsoid is oblate, the semi-minor axis of this spheroid coincides with the Earth's axis of rotation.
  • the coordinates of a point P on the Earth can be expressed as (X, Y, Z) in a three-dimensional Cartesian coordinate (three-dimensional rectangular coordinate).
  • the 3D Cartesian coordinate system is set in the ECEF (Earth-Centered, Earth-Fixed) method.
  • the origin of the three-dimensional rectangular coordinate system is located at the center (C) of the Earth's ellipsoid, and the Z-axis coincides with the minor axis of the spheroid.
  • the direction from the South Pole to the North Pole is the positive (+) direction of the Z-axis, and the X-axis and Y-axis are included in the Equatorial plane.
  • the two points where the earth's axis of rotation intersects with the earth's surface are the north and south poles. These north and south poles do not exactly coincide with the magnetic northern (north magnetic pole) or magnetic southern pole (which the compass points to). That is, the Z-axis is the Earth's axis of rotation, and the X-Y plane is the equatorial plane. Earth-Fixed means that this coordinate system rotates as the Earth rotates.
  • the application of the optimal spherical coordinate system to this earth spheroid is called a geodetic datum.
  • the geographic coordinate system or World Geodetic System (WGS) is a standard for cartography, geodesy and satellite-based navigation.
  • WGS 84, WGS 1984 or EPSG:4326, and GPS uses this system.
  • the plane containing the North and South Poles also includes the center (C) of the Earth's ellipsoid, and the line of intersection between this plane and the Earth's ellipsoid is given as an ellipse.
  • C center of the Earth's ellipsoid
  • the center of the ellipse coincides with the center of the earth's ellipsoid, it is called a great circle for convenience.
  • the line of intersection from the North Pole to the South Pole, or half of the great circle, is called the meridian or lines of longitude.
  • the meridian passing through the Royal Greenwich Observatory is the prime meridian, and the meridian on the opposite side is the antimeridian.
  • the coordinates of a point P on the Earth can also be expressed by the geodetic latitude ⁇ , the longitude ⁇ , and the ellipsoidal height h.
  • a coordinate system using geodetic latitude ⁇ , longitude ⁇ and height h is called a geodetic coordinate system.
  • geodetic latitude is not measured based on a line segment connecting origin C and point P in a three-dimensional rectangular coordinate system.
  • the normal n to the earth ellipsoid 101 is lowered.
  • the point 103 where the normal line n intersects the earth ellipsoid 101 will be referred to as an ellipsoidal point.
  • a tangent plane 104 is drawn from the ellipsoid point 103 to the earth ellipsoid 101, then by definition the normal passes perpendicularly through the tangent plane 104.
  • the angle ⁇ that the normal makes with the equatorial plane (XY plane) is the geodetic latitude.
  • the distance from the point 105 where the normal line meets the Z-axis to the ellipsoid point 103 is the radius of curvature in the prime vertical R N.
  • the semi-major axis (radius of the semi-major axis) of the earth spheroid is 6,378,137 m. If the radius of the major axis of the earth spheroid, that is, the major radius is a, and the minor axis, radius of the semi-minor axis, that is, the radius of the semi-minor axis is b, the eccentricity e of the earth ellipsoid is Equation 1 is given as
  • the radius of curvature of the catheter is given as a function of the geodetic latitude ⁇ , not a constant.
  • the three-dimensional rectangular coordinates X, Y, and Z are given as Equations 3 to 5 as functions of geodetic latitude ⁇ , longitude ⁇ , and ellipsoidal height h.
  • the line of intersection between the Earth's ellipsoid and the plane of the equator is the equator
  • the X-axis of the three-dimensional rectangular coordinate system is a straight line passing through the intersection point of the prime meridian and the equator at the center of the Earth.
  • the longitude of a point P on the Earth is the angle formed by the meridian plane containing the point with the X-Z plane, and is given by Equation 6.
  • the distance from the ellipsoidal point 103 to the point P is the ellipsoidal height h.
  • the angle formed by the line segment from the center C of the earth ellipsoid to the ellipsoid point 103 with the X-Y plane is the geocentric latitude ⁇ .
  • the geocentric latitude is given by Equation 7.
  • Equation 8 The formula for geodetic latitude is quite complex and is given as Equation 8.
  • the formula for obtaining geodetic latitude includes geodetic latitude. Therefore, it cannot be calculated simply by tapping a calculator.
  • latitude we mean precisely geodetic latitude.
  • the latitude displayed on digital maps such as Google Maps (https://www.google.com/maps) or Naver Maps (https://map.naver.com) is a geodetic latitude.
  • geodetic latitude should be used in modern times. It is probably related to the history of sailors measuring latitude by looking at constellations such as the Big Dipper and measuring longitude by comparing the altitude of the sun with the clock in the age of discovery and exploration. will be.
  • longitude is the same concept as what you learned in elementary school textbooks, but there is a subtle difference in that the prime meridian does not exactly pass through the Greenwich Observatory.
  • the height h of the ellipsoid at that point must be given.
  • the GPS coordinates given by the smartphone are geodetic latitude, longitude, and height above sea level.
  • Altitude above sea level is the height measured based on the geoid
  • the geoid is a virtual closed surface obtained when the height of average sea level is extended to the land.
  • the exact shape of the geoid is neither a sphere nor a spheroid. Although it is close to a spheroid, it is given as a rugged closed surface due to the difference in the amount and density of materials underground or on the ground, and it is virtually impossible to describe the entire shape of the geoid as a mathematical function.
  • altitude is not necessary to specify the location of most people who live confined to the surface or sea level.
  • the use of GPS that ordinary people need in their daily lives would be to know where I am on a map and how much the distance between two points or the approximate distance from a reference point is. In other words, if only the exact location on the map can be known from the GPS signal, it is not necessary to know that the shape of the earth is a spheroid and that the physical quantity we call latitude is exactly geodetic latitude.
  • Figure 3 is the result of moving to the southern end of the same Marado on Google Maps. Here, if you click on a point in front of General Rock, a small pop-up window will appear. In Figure 3, it is indicated as the East China Sea (33.112810, 120.269394). In other words, this point is located at (geodetic) latitude 33.112810° and longitude 120.269394°, which means that it belongs to the East China Sea (South Sea).
  • FIG. 4 shows a URL (Uniform Resource Locator), that is, a web address shown in the address bar (address bar, location bar, URL bar) of FIG. 3 on a desktop computer, as a web browser of Google. Paste it into the address bar of Chrome and press Enter to see the result.
  • URL Uniform Resource Locator
  • FIG. 4 a screen almost identical to that of FIG. 3 appears. Looking at the slight difference, I entered the zoom as 17.5, but Google Maps truncates the zoom level to a natural number and displays it.
  • Google Maps https://www.google.co.kr/maps
  • Google Maps running on the web processes a search string containing geographic information. Because the function is implemented. Complete location information must be given in geographic coordinates consisting of (geodetic) latitude, longitude and altitude, but it is not necessary to know the altitude to get to a specific location on a general map.
  • the string shown in FIG. 3 seems to be Google's own format, not a standard string of the GET method. Since it is not a string for the purpose of communicating with other apps (apps, applications) from the beginning, it seems to have developed and used its own format.
  • Google Maps on a smartphone is not a web app implemented in HTML5/CSS3/JavaScript, but uses a language called Kotlin for Android phones and Swift for iPhones. It is a native app developed using Also, the search bar of Google Maps is not the address bar of an Internet browser. And this is because the Google Maps app has not implemented a function that can process strings displayed in the address bar of a web page in the search bar. Therefore, you can search for 'Marado General's Rock' on Google Maps on your smartphone, but you cannot search by entering a string that appears in the address bar of Google Maps running on your desktop computer.
  • GPS coordinates are used in aircraft, missiles, self-driving cars, and smartphones. It's hard to find an area where GPS coordinates aren't used. In particular, GPS coordinates are very important in search & rescue missions.
  • a dune is constantly changing its shape under the influence of the wind. And how likely is it that there are unusual features in the middle of the desert, visible to the naked eye? Therefore, it is impossible to inform the police of one's location by describing the landmark.
  • the surest way is to check the GPS coordinates on your smartphone and call the latitude and longitude.
  • the method of specifying a geographical location using (geodetic) latitude and longitude has many inconveniences in practice.
  • the biggest inconvenience is that it is difficult to guess how far apart two points of latitude and longitude are in terms of distance, since they are not units of distance such as meters or feet.
  • the positional precision is less than 1 mm no matter where you are on the globe. Of course, this means taking into account the size of the Earth, you need other orders of magnitude for the Moon or Mars.
  • the error of a GPS measuring device used for civil engineering/construction is about 2 to 3 cm, and the error of GPS coordinates in a smartphone is about 5 to 15 m.
  • FIG. 5 is a conceptual diagram simply illustrating a process of creating a map using the Mercator projection provided by the Encyclopedia Britannica (Source: (https://www.britannica.com/science/Mercator-projection#/media/1/375638/ 231099).
  • the Mercator projection is the most widely known projection among the cartography methods of the cylindrical projection scheme.In the Mercator projection, it is created by first projecting a cylinder in contact with the equator from the center of a sphere and then expanding the cylinder, so the polar regions are It cannot be displayed .
  • FIG. 6 is an example of a world map created by the Mercator projection (author: Justin Kunimune, source: https://en.wikipedia.org/wiki/Mercator_projection#/media/File:Mercator_with_Tissot's_Indicatrices_of_Distortion.svg).
  • the circles shown in FIG. 6 are called Tissot's indicatrix of deformation, and indicate how the area or shape is distorted depending on the position. If there is no distortion, the Tissot ellipses should all be represented as circles of the same size. 6, it can be seen that the Tissot ellipse increases as the latitude increases, but still maintains a circular shape. That is, the Mercator projection preserves the angle and shape of a small area.
  • Mercator projection is a representative example of conformal projection.
  • the greatest advantage of the Mercator projection is that it preserves direction, which was especially helpful in navigation by ship using a compass in the past.
  • the biggest disadvantage of the Mercator projection is that the area is greatly distorted and the polar regions cannot be displayed as described above. For example, Greenland appears to be the same size as Africa, but in reality the area of Africa is 14 times the area of Greenland.
  • Web Mercator projection was adopted by Google in 2005 and is currently a projection method adopted by most Internet map service providers, and SRID (Spatial Reference Identifier) is given as EPSG:900913 or EPSG:3857.
  • SRID Geographical Reference Identifier
  • EPSG:3857 The official name of EPSG:3857 is WGS 84/Pseudo_Mercator.
  • Webb Mercator projection is also referred to as spherical Mercator. In the Webb Mercator projection, longitudes range from -180° to +180°, but latitudes range only from ⁇ 85.051129°.
  • a point P on the Earth has a geodetic latitude ⁇ , a longitude ⁇ , and an ellipsoidal height h.
  • the ellipsoid point 703 is the point where the normal line (n) drawn from the point P to the earth ellipsoid 701 meets the earth ellipsoid. This normal (n) passes perpendicularly through the tangent plane 704 at the point of the ellipsoid.
  • the radius of the Earth's ellipsoid in the equatorial plane (X-Y plane) is R.
  • a point P having a geodetic latitude ⁇ and an ellipsoidal height h on the earth ellipsoid is regarded as a point P' having a geocentric latitude ⁇ and an altitude h on the spherical Earth.
  • the projection method of the Webb Mercator projection can be written as Equations 9 to 10.
  • x is the easting distance in the Webb Mercator projection
  • is the longitude
  • R is the radius of the Earth at the equator, equal to the radius a of the major axis of the Earth's ellipsoid. That is, 6,378,137m can be used as the R value.
  • y is the northing distance in the Web Mercator projection method
  • is the geodetic latitude.
  • the Web Mercator projection uses geodetic latitude and longitude, but assumes that the earth is a sphere, not an ellipsoid, and assumes geodesic latitude to be geocentric latitude, and transfers it to the Mercator projection.
  • the Earth's equatorial radius is about 6,378 km, and its polar radius is about 6,357 km.
  • the Earth's ellipsoid is so close to a sphere that it is difficult to distinguish it with the naked eye. If the earth ellipsoid is regarded as a sphere, the scale of the distance by the Mercator projection projection is given as Equation 10 to Equation 11.
  • 1m is represented by 1m, but at 30° latitude, 1m is represented by 1.15m, at 45° latitude, it is 1.41m, at 60° latitude, it is 2.00m, and at latitude 85°, it is 11.47m. is indicated by
  • the UTM coordinate system (Universal Transverse Mercator Coordinate System) was developed in 1947 by the US Army as one of the grid coordinate systems to represent locations on the entire globe as a unified system. 8 is an example of a world map created in the UTM coordinate system (author: Jan Krymmel, source: https://commons.wikimedia.org/wiki/File:Utm-zones.jpg).
  • the earth is divided into vertical bands at 6° longitude intervals, drawn in a transverse Mercator projection, and then the location is indicated by vertical and horizontal coordinates with respect to the origin set for each vertical zone (band). The point of intersection of the central meridian and the equator is the origin of each vertical band. While the geographic coordinate system greatly reduces the rectangular shape toward the polar regions, the UTM coordinate system maintains a rectangular shape, so it is very convenient to indicate distance, area, direction, etc.
  • the UTM coordinate system models the shape of the earth with irregular curvature and ups and downs as a reference ellipsoid.
  • the Clark 1866 ellipsoid was used in the Americas and the International ellipsoid was used in other regions.
  • the UTM projection used in the UTM coordinate system is a transverse drawing of the Mercator projection developed in 1570 by Gerardus Mercator, a Belgian geographer and cartographer.
  • the UTM coordinate system divides the Earth's surface into a total of 60 vertical bands at 6° longitude intervals, starting at 180°W (west longitude), each extending from 80°S (south latitude) to 84°N (north latitude) from north to south.
  • Each vertical strip is numbered 1 through 60, starting from section (180°W-174°W) and extending eastwards to section (174°E-180°E).
  • FIG. 9 is a conceptual diagram illustrating a UTM zone (Author: Javiersanp, Source: https://commons.wikimedia.org/wiki/File:Utm-latlon_grid_en.svg), showing the northern hemisphere of Zone 28. For these 60 vertical bands, they are transferred to the map by the transverse Mercator projection with relatively little distortion in the north-south direction.
  • the scale factor at the central meridian of each zone is 0.9996, and is about 1.0010 at the boundary of the zone.
  • the scale factor becomes 1 at a location 180 km east and west of the origin (ie, the intersection of the central meridian and the equator), the scale factor is less than 1 within that range, and the scale factor is greater than 1 in the area beyond 180 km.
  • Each UTM zone is further divided into 20 latitude bands, which belong to the Military Grid Reference System (MGRS) system rather than the UTM system.
  • Each latitude band is 8° latitude apart.
  • the northernmost latitude band 72°N-84°N
  • the northernmost latitude band 72°N-84°N
  • the southernmost (80°S-72°S) band to the northernmost (72°N-84°N) band
  • alphabetic symbols from 'C' to 'X' are assigned. I' and 'O' are excluded. This is because I can be confused with the number 1 and 'O' with the number 0. Therefore, the symbol for the latitude band (0°N-8°N) bordering the equator in the northern hemisphere is 'N'.
  • Each vertical band i.e., a band of latitude within a UTM zone, is indicated by a combination of numbers and alphabetic symbols. For example, South Korea belongs to zones 51S, 51T, 52S, and 52T in the UTM coordinate system.
  • the UTM coordinate system is an orthogonal coordinate system used for military purposes.
  • ) has the advantage that the distance of a point in the direction can be easily calculated by trigonometry.
  • the process of interconverting the geodetic latitude and longitude obtained from the GPS signal with the northward and eastward distances in the UTM coordinate system is too complicated. Therefore, although it is possible to obtain the UTM coordinate system using a computer or app, it is practically impossible to calculate it with a calculator or handwriting.
  • the points 700 km south and 300 km west of the UTM-K origin are used as reference points, and Korean characters are given in alphabetical order from west to east and south to north, respectively, from the reference point to each grid.
  • a number is assigned based on the point where the length and width of the grid are divided into 10,000 units of 10 meters each.
  • the given number is displayed in 4 digits, and in this case, if each integer is less than 4 digits, "0" is inserted in front of it until it reaches 4 digits.
  • the first 4 digits of the branch number indicate the distance to the east, and the 4 digits to the back indicate the distance to the north.
  • "Raa 8485 1333” (Seoraksan Mountain Daecheongbong) means the point 384.85 km east and 713.33 km north of the reference point.
  • this national branch number was developed with the intention of asking the survivor to call 119 for their location after seeing this information board. That is, if you report your location as “Daba 9924 1825” while calling 119, the rescue team can specify the location of the missing person in the range of a square of 10 m in length and width. Although a location can be accurately specified using latitude and longitude, the use of such a national point number system is because, as described above, geographical coordinates are inconvenient for people to remember or dictate.
  • this national branch number system also has inconvenient points.
  • this national branch number specifies a location with an error range of 10m horizontally and vertically. A margin of error of 10 m is sufficient for use in the rescue of victims, but insufficient for other uses. For example, if you think about a case where a spectator orders chicken and beer (chicken and beer) over the phone at a baseball stadium, there will be about 100 people in a square of 10m x 10m.
  • Geographical coordinates are pairs of latitude and longitude, using latitude and longitude to six decimal places. This is the precision that can specify a position on the earth with an error range of 3m horizontally and vertically.
  • a smartphone's GPS sensor has about this accuracy.
  • the user can use these three words to remember or record the location of the place, use them to call their location or a third destination to others, or send them as text messages.
  • the receiver can obtain geographical coordinates from these three words and display the corresponding location on a map.
  • [Special 2] discloses a technology in which two or more users (Buddy) registered in a watch list share their location in both directions using a GPS sensor of a mobile phone and a dedicated server (Buddy Watch server) connected to the Internet. .
  • the process of registering a user to the watchlist can be permanent or temporary on an ask/accept basis, and the user can arbitrarily stop sharing their location.
  • [Special 3] discloses a method of confirming the location of another mobile phone on a map based on a request/acceptance using a GPS positioning system and a mobile communication network.
  • the sender sends a text message embedded with a map to the recipient so that the recipient can check the location of the sender and the recipient at the same time, and the location of the two people on the map is displayed in real time.
  • a technique to be updated is disclosed.
  • the geographical location of the sender's smartphone is converted into encoded data using two or more alternatively selectable means such as email or text message.
  • a method of transmitting to a receiver and sharing the sender's location is disclosed.
  • the recipient receives a text message from the sender and processes it to display the sender's location on a map, but the text message hash a longer URL including the sender's location
  • a method of including a hash-processed short URL is disclosed.
  • emergency information can be sent to an emergency contact with just a simple button operation of the mobile communication terminal to notify an emergency situation, and security can be maintained by switching the mobile communication terminal to silent/matte mode.
  • an emergency call processing device using a mobile communication network for
  • [Special 10] discloses a technology capable of inserting a marker and text into a panoramic image along with geographic coordinates and transmitting the same through a pre-set sharing link.
  • An indoor map that shows the structure and information of a specific floor when the user selects it is essential.
  • An indoor map is basically an optional display of additional information on the floorplan of a building. Indoor maps can be used independently, but their usefulness increases significantly when linked with outdoor maps.
  • an indoor map is overlapped and displayed at the correct position on an outdoor map, and a 6K floor is shown on the introduction screen.
  • the mini home page of Madison Square Garden is shown on the left side of the screen, and there is a menu to select other floors on the right side.
  • the map screen is enlarged to show the east side of Madison Square Garden, and in FIG. 16, the floor is changed to the second basement floor (-2). If you select a different floor like this, the floorplan of that floor is replaced and displayed.
  • a network server provides indoor map features to a client device.
  • the network server checks whether there is a multi-floor building among the outdoor map data, and then maps the indoor map of the default floor for the multi-floor building. and an indoor map indicator are displayed on the user device, and the indoor map is selectively displayed as the user manipulates the indoor map indicator.
  • [Special 12] to [Special 13] disclose a technology for selecting a floor of a multi-story building from an interactive digital map.
  • the external representation of a multi-story building is displayed on the digital map, and when the user selects a point on this external representation, a 3D model of the building is displayed, with the floor plan of the building partially overlapped. do.
  • the floor plan of the selected floor is activated in a way that distinguishes it from the floor plans of the other floors.
  • [Special 14] discloses a technology capable of providing indoor location information even when GPS location information cannot be found, and providing location information and map information-based services through an open API. To this end, the location on the indoor map is estimated based on the location, identification information, and signal strength of the indoor map of the building and the wireless access point (AP) installed indoors.
  • AP wireless access point
  • FIG. 17 is a diagram for explaining the concept of northbound distance and eastbound distance used in the prior art.
  • a sphere whose center is located at the center of mass of the Earth is assumed, and the radius of this spherical model Earth is R.
  • the R value can use 6,378,137 m, the radius of the earth at the equator.
  • the origin C of the World coordinate system that is, the Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system, is located at the Earth's center of mass, and the Z-axis coincides with the Earth's axis of rotation.
  • the X-axis is a straight line passing through the intersection of the equator and the prime meridian at the origin, and the direction of the Y-axis is automatically determined by the principle of Right-Handed coordinate system (RHS).
  • RHS Right-Handed coordinate system
  • the northward distance N and eastward distance E of a point having geodetic latitude ⁇ , longitude ⁇ , and ellipsoidal height h are measured as follows. Similar to FIG. 7, a point having geodetic latitude ⁇ , longitude ⁇ , and ellipsoidal height h is replaced with a point P having geocentric latitude ⁇ , longitude ⁇ , and geocentric altitude h.
  • the point where the line segment from the origin C of the world coordinate system to the point P intersects the sphere is called the sphere point S( ⁇ , ⁇ ), and the point where the equator L o and the prime meridian meet is called the origin of the latitude-longitude line. ) is referred to as O.
  • the northward distance is defined as the length of an arc measured along the prime meridian from the origin O of the longitude line to the path point
  • the eastward distance is defined as the latitude line from the path point to the sphere point S( ⁇ , ⁇ ) having geocentric latitude ⁇ and longitude ⁇ . Therefore, it is defined as the measured arc length.
  • the reference point is the point of intersection of the line of latitude with geodetic latitude ⁇ o and the meridian with longitude ⁇ o
  • the northbound distance is the length of an arc measured along the meridian from the reference point to the route point
  • the eastward distance is the geodetic latitude from the route point. It is the length of an arc measured along the latitude line to the ball point S( ⁇ , ⁇ ) with ⁇ and longitude ⁇ .
  • the northward distance is given as Equation 8 as a function of the geodetic latitude ⁇ and longitude ⁇
  • the Eastward distance is given as Equation 9.
  • R is the average radius of the earth
  • N o is the base value of the northward distance
  • E o is the base value of the eastward distance
  • ⁇ o is the geodetic latitude of the reference point
  • ⁇ o is the longitude of the reference point.
  • any point on the Earth can be used as a reference point.
  • the position of the statue of King Sejong in Gwanghwamun Plaza can be used as the reference point of the coordinate system.
  • the Sejong reference point can be used for use only within the territory of the Republic of Korea, and the default values for the distance northward and eastbound can be given so that the distance northward and eastbound always have positive values within the territory of the Republic of Korea.
  • the reason for choosing such a reference point is to ensure that distances heading north and east have positive values all over the globe, and to prevent discontinuities in distances going north and east in densely populated areas such as London. because it can
  • the northward distance is given as in Equation 14
  • the eastbound distance is given as in Equation 15.
  • Equations 16 and 17 formulas for obtaining geodetic latitude and longitude from northward and eastward distances are given as Equations 16 and 17.
  • Table 1 shows the northward and eastward distances of representative places on the earth in this coordinate system.
  • the coordinates of the Dokdo territorial marker can be specified as 4,164,284m northbound and 7,638,526m eastbound.
  • the position in the horizontal direction is specified with an error range of 10m ⁇ 10m with two Korean characters and two 4-digit numbers
  • the position in the horizontal direction is specified with two 7-digit numbers and 1m ⁇ 1m.
  • the national point coordinate system cannot calculate the national point coordinate system from the geographic coordinate system or conversely calculate the geographical coordinates, that is, latitude and longitude, without using a computer or application. It has the advantage that it can be calculated using it, and it can be approximated even with only paper and pencil.
  • floor information is more important than elevation. For example, if you are meeting someone in a tall business building, information about which floor you are on is more important. In addition, at least once, everyone will have experienced a disappointment when they parked their car in an underground parking lot and forgot how many floors they parked in the basement. For these various reasons, floor information is more useful than elevation.
  • the ground floor layer In order to describe the entire Earth with a simple mathematical model and a consistent concept, it is preferable to call the ground floor layer 0.
  • the ground surface, the surface of a lake, and the sea level in the middle of the sea are all considered as layer 0.
  • the 0th floor refers to the ground surface where people can walk around on their feet in a natural state and the floor of a building continuously connected to the ground surface. Therefore, even if Gapdori jogs along the riverside road, swims in a lake, or finds a store he likes and enters the store from the sidewalk, it is all on the 0th floor. Also, when you have climbed Mt.
  • the 0th floor has nothing to do with the height of the ellipsoid or the altitude above sea level.
  • the layer we call the second layer is the +1 layer
  • the third layer is the +2 layer.
  • the first basement floor is the -1 floor
  • the second basement floor is the -2 floor.
  • the altitude of the ground center, the height of the ellipsoid, and the altitude above sea level are all ignored, and the integer F representing the floor is used instead.
  • the northward distance N and the eastward distance E are used for the location in a horizontal space.
  • the integer F representing the layer is optionally used.
  • the location of a point is specified as (N, E, F)
  • the geodetic latitude and longitude on floor F of a building denotes a particular point corresponding to a distance N north and a distance E east.
  • N, E if you only write (N, E), it means (N, E, 0). That is, it may mean an outdoor place where the concept of a floor is not required, or it may mean the first floor of a multi-story building. In this way, the concept of a floor can be logically extended from the inside of a building to the outside to specify the indoor/outdoor locations integrally.
  • This model can be used for a variety of purposes, such as ordering food to be delivered, delivering mail, making an appointment with someone, or visiting a restaurant found on the Internet in a large city with many multi-story buildings.
  • FIG. 19 is a conceptual diagram showing the configuration of a digital map system of the related art that provides indoor map service in the form of a web app.
  • a web server When a user of a smart phone or desktop computer, or a delivery robot accesses a web server through the Internet, Google Chrome or Microsoft Edge You can use a digital map using a web browser such as (Microsoft Edge). Since the digital map works as a web app, the web server and app server are effectively the same. Therefore, both the terms web server and app server can be used.
  • a user who wants a digital map service directly accesses a web server using a computer or smartphone, and the web server includes an outdoor map server, a building database, and a building data store. data store, building data warehouse). It can be said that they are integrated to constitute the hardware of a digital map system.
  • An outdoor map server is a server that provides map tiles to a web server to draw an outdoor map.
  • a service server of Open Street Map www.openstreetmap.org
  • tile service may be regarded as an outdoor map server.
  • the building database is a database capable of inquiring information related to a building, such as a building name, address, homepage, geographical location, and a location where a building's outline drawing file or floor plan file is stored.
  • the building data store is where vector data is stored as indoor map files, including building outline drawings and floorplans per level.
  • Building data storage can be thought of as Network Attached Storage (NAS) connected to the Internet, and as users and content grow, it can be one or more devices or servers.
  • NAS Network Attached Storage
  • the web server fetches the indoor map file from the building data store and draws it overlaid on the correct location on the outdoor map.
  • the map app could be used as a web app on a PC and as a native application on a smartphone.
  • a web site for digital maps is created using HTML5/CSS3/JavaScript for PC
  • a native app is created with Kotlin for Android phones
  • a native app is created for iPhone using Swift.
  • Kotlin is similar to Java
  • Swift is similar to C++.
  • the app must be written in three independent languages: JavaScript, Kotlin, and Swift, and three times the effort is required to maintain and maintain the app.
  • the biggest advantage of the web app is that it can respond to both PC and smartphone with a single source, and there is no need to write, maintain, and maintain a separate app.
  • the reason this is possible is because there is a great piece of software available in web browsers called JavaScript. That is, there is a common platform that exists across PCs and smartphones. It is for this reason that software, which used to be used by installing a program contained in a floppy disk or USB (Universal Serial Bus) on a PC in the past, can now be used by accessing the web and paying a fee. to be.
  • professional programs such as Microsoft Word and AutoCAD can be made into web apps.
  • the biggest drawback of web apps is that you have to access the website every time. For example, if you want to use Microsoft Word written as a web app, your PC or smartphone must be connected to the Internet, and you must visit the website every time to work on the word.
  • a client that is, a web browser
  • a host that is, a corresponding web server
  • PWA Progressive Web App
  • Google Maps provides indoor maps for large multi-story buildings.
  • the zoom of the map exceeds the preset value, the floorplan of the default floor of a large building that provides indoor map service is displayed, and a menu for selecting other floors of the building appears on the map screen. looks on one side of If you select a different floor from that menu, the floor plan of the base floor is displayed replaced with the floor plan of that floor.
  • a map app When a map app is executed on a smartphone, the location of the smartphone is calculated from GPS signals and displayed on a map. In other words, if you run a digital map on your smartphone, you can display your current location on the map, and you can program the map to pan automatically so that your location is always in the center of the map. Therefore, if the owner of the smartphone enters the inside of a building, a menu for selecting a floor can be displayed without clicking the mouse or touching the screen. That is, if the current location is inside a multi-story building where a floor can be selected, it would be convenient to display a menu for selecting a floor without clicking or touching.
  • the owner of the smartphone continues to stay on the ground floor, he can ignore the floor selection menu, and if he intends to move to another floor using the stairs or elevator, the floor plan of the corresponding floor is displayed in advance through the floor selection menu. It will be convenient to check.
  • a floor selection menu will be automatically displayed. can In addition, when combined with various technologies that can identify floors, it will be possible to automatically change the view of the floor plan when the floor is changed.
  • MDN Web Docs describes JavaScript objects as follows (source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object).
  • An object class represents one of JavaScript's data types. It is used to store collections of values with various keys and more complex entities. Objects can be created using the Object() constructor or object initializer / literal syntax. Object() constructor or the object initializer / literal syntax.)
  • a user-defined object called coordinates could be defined as:
  • lat and lon are keys, and 36.0 and 127.0 are values.
  • the value of lat can be obtained with coordinates.lat.
  • map of Korea or the world is the entire map, a part of the map viewed on a computer or smartphone, or an object showing the map, can be considered as a view.
  • OpenLayers a representative client-side open source software related to maps, defines a view as follows (source: https://openlayers.org/en/latest/ apidoc/module-ol_View-View.html).
  • a view object represents a simple two-dimensional view of a map. You can apply map center, resolution, and rotation operations to this object.
  • a view has a projection method. This projection determines the center of coordinates, and the units of this view determine the units of resolution.
  • the default projection is spherical Mercator (EPSG:3857) (A View object represents a simple 2D view of the map. This is the object to act upon to change the center, resolution, and rotation of the map.
  • a View has a projection The projection determines the coordinate system of the center, and its units determine the units of the resolution (projection units per pixel). The default projection is Spherical Mercator (EPSG:3857).).
  • the most essential element of a digital map is a view, and it is desirable to have a side panel to facilitate user interaction.
  • the view has a rectangular shape, and the range of the outdoor map visible in the view is called a view extent.
  • the view range can be expressed as the minimum and maximum values of the longitude and maximum values of the outdoor map visible in the view, or the minimum and maximum values of the latitude, or equivalently, the minimum and maximum values of the eastward distance and the minimum and maximum values of the northward distance in the Web Mercator projection. .
  • a view is referred to as a map screen or simply a screen for convenience.
  • a part of the map visible in the view range among the entire map will be referred to as a map area.
  • the first map screen that is displayed when the map app is started is referred to as the initial screen.
  • map In the map platform, a map is a JavaScript object that has views, layers, and targets. Openlayers describes the map object as follows (source: https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
  • Maps are a key element of OpenLayer.
  • the map is the core component of OpenLayers.
  • the target container refers to a document element (DOM element) to which a map is attached in an HTML document.
  • the simplest map object can be given as:
  • the center of the view is set as the origin ([0, 0]) of the distance east and north
  • the zoom is set to 1
  • a DOM (Document Object Model) element called map is created in the HTML document. Yes, which means attaching a map to that map element.
  • the map tile to be displayed on the map uses OpenStreetMap (OSM).
  • OSM OpenStreetMap
  • Digital maps accessed through the Internet differ in what is displayed on the view depending on the zoom level of the map.
  • the zoom level of a typical map can vary from 0 to 24 degrees. And, when the zoom level increases by 1, the area shown in the view is reduced to 1/4, and conversely, the map is enlarged by 4 times.
  • the coordinates of the view center are (geodetic) latitude and longitude, the northward distance (N) given by Equation 14 and the eastbound distance (E) given by Equation 15, etc., on the side panel or control window ( displayed in the control pane.
  • OK Venture Town is shown in the view in FIG. 20 .
  • the building at view center - the building name is displayed on the left side panel. Since the building is a three-story building, a floor selector appears where you can select a floor.
  • the layer of map object is composed of baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, and locationMarkerLayer. Layers that are declared first are drawn first, so baseLayer is at the bottom and locationMarkerLayer is at the top.
  • baseLayer is a layer that receives map tiles from OpenStreetMap as picture files and draws an outdoor map.
  • the baseLayer is a raster layer, and all others are vector layers.
  • locationMarkerLayer is a layer for displaying a user's location or a compass on a map
  • unitAreaMarkLayer is a layer for displaying a unit area.
  • buildingLayer is a layer for drawing a building outline
  • floorplanLayer is a layer for drawing a plan view of any one floor among floorplans per level of a building.
  • buildingLabelLayer is a layer for displaying key information related to the building, such as the name of the building or homepage address
  • spaceLabelLayer is a layer for showing each other of individual spaces shown in the floor plan. For example, each room can be a single space.
  • FIG. 21 is just one example, there is a map layer group that displays an outdoor map first, and a structure layer group for showing the outline or floor plan of a building as a vector layer on top of that. It is important that there is In FIG. 21, the map layer group is a layer group having only one layer (ie, baseLayer), but in an example in which a general map and a satellite map are used together, the map layer group also has a plurality of layers. Also, the structural layer group may be composed of several layers. The reason for configuring multiple layers like this is to do structural programming.
  • the embodiment of the prior art integrates an indoor map including an outdoor map and a floorplan of a building on a view (map screen) of a digital map.
  • provides a way to display 22 is a flowchart illustrating an entire process of displaying a digital map in an embodiment of the related art. This includes maintaining an outdoor map server, a building data store that manages building outline drawings and floorplans in individual folders for each building. ), and maintaining a building database that manages map setting data of buildings.
  • the map setting data stored in the building database includes the unique building identification number (primary ID, bldID) of each building, the full path to the individual folder, the number of floors of the lowest floor (minFloor) and The number of floors of the highest floor (maxFloor), the zoom level for showing building outline (zoomShowBld, zoom level for showing building outline), the zoom level for showing floor plan (zoomShowFloor, zoom level for showing floorplan), and the northing distance corresponding integer ) I and the easting corresponding integer J.
  • primary ID primary ID
  • the outdoor map is displayed in the view with the initial map settings, and the view is updated according to the user's zoom, pan, and rotate selections.
  • the view is updated according to the user's zoom, pan, and rotate selections. include Renewing the view not only updates the outdoor map, but also zooms, pans, and rotates the outlines and floor plans of the buildings included in it.
  • the zoom threshold value for displaying the floor plan of the building. For example, it is neither possible nor necessary to display the floor plans of all buildings in Korea when viewing the map of Korea. Therefore, a zoom level that needs to show a floor plan for some buildings with a zoom higher than a set value may be set to 15, for example. In this way, if the zoom of the digital map is greater than or equal to a preset value, a building database is searched and a list of buildings whose geographic locations are included in a view extent is prepared.
  • the view range building list (Bld_ID) is the center coordinates of the building, or a list of buildings in which all or part of the building is located in the view and registered in the building database.
  • the building outline is displayed only when the zoom level of the digital map is greater than the zoom level (zoomShowBld) displaying the outline.
  • a list of buildings to be displayed with outlines - referred to as a list of buildings to display outlines (bldIDsToShow) - is extracted and managed from the list of buildings in the view range. If this building, that is, the i-th building, is a building in the list of buildings to be outlined, the building outline drawing of this building is fetched from the data store and added to the buildingLayer.
  • tiles to be displayed on the map are automatically determined when the geographic location and zoom level to be displayed on the view are determined.
  • a square raster file produced in the form of a png file is used as a map tile.
  • the indoor map must be overlapped on the outdoor map, and when the user selects another floor, another indoor map, that is, a floor plan of another floor, must be displayed, so it is difficult to provide a service in the same tiled manner as the outdoor map. Therefore, the indoor map should be managed as separate data from the outdoor map, stored in a data store, and then retrieved when necessary and displayed superimposed on the outdoor map.
  • GeoJSON is a format for encoding a variety of geographic data structures.
  • GeoJSON GeoJason
  • JSON Javascript Object Notation
  • the outline of the building should be given as a closed curve or polygon.
  • the GeoJSON format does not allow curves, so in reality it should only be given as a polygon. If the outline is given as a polygon, it can be determined whether the view center is inside or outside the polygon.
  • any one point constituting the vertex of a polygon are given in the form of [distance east, distance north] or [longitude, latitude].
  • square brackets [] denote an array. So, when you add this outline drawing to the buildingLayer, it is automatically added to the correct location.
  • zoomShowLabel displaying the label including the name of the building for the buildings in the building list to display the building outline
  • the label of the building is displayed as the building label. Add it to the layer (bldLabelLayer).
  • zoomShowFloor zoom level for showing floorplan
  • zoom level for showing floor plans For buildings taller than the level, check again if the building has a +ground floor. This can be found by examining whether the lowest floor (minFloor) of the building is less than or equal to 0 and the highest floor (maxFloor) is greater than or equal to 0.
  • a list of buildings that have passed both of these tests (hereinafter referred to as a list of buildings subject to floor plan display) is created, and for the buildings in this list, floor plans of the ground floor are retrieved from the data store and the corresponding buildings are displayed. It is displayed by overlapping to match the outlines. Since the locations of the points in these floor plans are all given in the form of [distance to the east, distance to the north] or [longitude, latitude], adding the floor plan to the floorplanLayer will give you the outline of the building and the ground floor. All of the floor plans are displayed in the correct location on the outdoor map.
  • a map update process may then repeat the above process, such as zooming, panning, or rotating operations to add a new floor plan, move an existing floor plan, or remove some of the existing floor plans. have. That is, after initializing the already created view range building list, the outline display target building list, and the floor plan display target building list to 0, and removing all outline drawings and floor plans in the view, start again from the update view step. may start
  • map update subroutine is similar to the previous process, but the floor plan display subroutine is mainly different, except for the view range building list (Bld_ID), outline display target building list (bldIDsToShow), and floor plan display target building list (floorplanIDsToShow).
  • Bld_ID view range building list
  • bldIDsToShow outline display target building list
  • floorplanIDsToShow floor plan display target building list
  • a digital map system that performs this function includes an outdoor map server and data that manages building outline drawings and floor plans of buildings in individual folders for each building.
  • the above sequence of steps includes starting the digital map with initial map settings, displaying the outdoor map in the view, and updating the view according to the user's zoom, pan, and rotate selections. and, if the zoom of the digital map is greater than or equal to a preset threshold zoom value, the building database is searched and the view range building whose geographic coordinates are included in the view extent. Creating a list, and executing a floorplan display subroutine and a floor selection subroutine if the number of buildings in the view range building list is greater than zero.
  • OK Venture Town a 3-story building, has a total of 4 files stored including the floor plan of the 1st, 2nd and 3rd floors and the outline drawing of the building.
  • an indoor map can be effectively displayed on top of an outdoor map using the algorithms shown in FIGS. 22 and 23 .
  • the first problem to be solved is to cope with the large difference in screen resolution.
  • smartphone users use their smartphones vertically (portrait mode) or horizontally (landscape mode). Therefore, in the case of a smartphone, it is necessary to respond to the orientation of the smartphone.
  • index page existing on a server of the Internet address is executed.
  • the index page uses media queries or JavaScript libraries to determine the type (desktop computer, tablet PC, smartphone) and direction (screen mode, orientation) of the client accessing the web, and then creates a suitable landing page.
  • the indexDesktopLandscape.html page is executed, if the client is a standing smartphone (portrait mode), the indexMobilePortrait.html page is linked, and if the client is a lying smartphone (landscape mode), the indexMobileLandscape.html page is linked. .
  • the JavaScript programs that operate on the indexDesktopLandscape.html, indexMobilePortrait.html, and indexMobileLandscape.html pages are the same or similar, but the UI (user interface) of the Internet page starts differently.
  • the text message body contains the geographic coordinates of the selected location and the map parameters, including the building ID and floor, as a search string.
  • the URL Uniform Resource Locator
  • the sender and receiver can share the same map screen by integrating indoor and outdoor locations and sending them as text messages. .
  • 1 is a conceptual diagram for understanding the difference between geodetic latitude and geocentric latitude.
  • Figure 2 is the result of moving to the southern tip of Marado on Naver Map.
  • Figure 3 is the result of moving to the southern tip of Marado on Google Maps.
  • FIG. 4 is a result of searching for the string shown in the address bar of the Google Map of FIG. 3 in Google's Chrome browser.
  • FIG. 5 is a conceptual diagram of a Mercator projection
  • 15 and 16 are enlarged indoor maps of the 6K floor and the second basement floor in Google's indoor map of Madison Square Garden.
  • 17 is a conceptual diagram of a coordinate system used in the prior art.
  • 18 is a conceptual diagram illustrating the concept of layer information in the conventional invention.
  • FIG. 19 is a conceptual diagram showing the configuration of a digital map system according to the related art.
  • 20 is a diagram showing a view of a digital map and an example of a building in the center in the prior art.
  • 21 is a diagram illustrating the configuration of layers in an embodiment of the prior art.
  • 22 is a flow chart showing an algorithm of a map app in the prior art.
  • 24 is a conceptual diagram illustrating a process of changing a landing page of a map app using a media query.
  • Gyejok is at the center of the map screen of the digital map.
  • 26 is an enlarged view of the control window shown in FIG. 25;
  • 29 is a flowchart illustrating an algorithm for displaying an initial screen by executing a map app
  • 31 is a diagram showing an initial screen of a map app in the first embodiment of the present invention.
  • 32 is a flowchart of an algorithm for storing starting map parameters.
  • 33 is a diagram for explaining a menu of a map app
  • 34 is an initial screen when the map app is executed again after saving the starting map parameters to local storage.
  • 35 is a flow chart illustrating an algorithm of the step of sending a text message by the sender in the second embodiment of the present invention.
  • 36 is an example of an event listener connected to a 'send screen as text message' button
  • 37 to 39 are examples of sending a map screen by text message from a smartphone.
  • 40 is a flow chart showing an algorithm for selecting a received text message and executing a map app.
  • 41 is an example of JavaScript code for extracting map parameters from a URL.
  • FIG. 42 is a flowchart showing an algorithm for differentiating a landing page according to a type of device and a screen mode in the third embodiment of the present invention.
  • 43 is a flow chart showing an algorithm for displaying an initial screen of a digital map on a landing page.
  • 45 is a flowchart showing an algorithm for displaying an initial screen of a map app in a fifth embodiment of the present invention.
  • 46 is a conceptual diagram illustrating a search range in an embodiment in which an indoor map is displayed on an initial screen
  • 51 is a conceptual diagram for explaining why the algorithm of the fifth embodiment fails.
  • FIG. 52 is a flow chart showing an algorithm for storing starting map parameters in the sixth embodiment of the present invention.
  • 53 is a flowchart showing an algorithm of a step of displaying an initial screen so that a place displayed on the initial screen matches a target map parameter;
  • 54 is a flow chart showing an algorithm for sending text messages to indoor/outdoor places in the seventh embodiment of the present invention.
  • 57 shows a map app installed on a smartphone as a PWA.
  • 58 is an example of a menu button of a map app of the present invention.
  • 59 is a smartphone screen executing a menu for sending GPS coordinates as a text message.
  • 60 to 61 are parts of JavaScript code that implements an algorithm for sending GPS coordinates as text messages.
  • 62 and 63 are smartphone screens that send GPS coordinates as text messages.
  • 64 is a flowchart showing an algorithm for sending GPS coordinates as a text message in the eighth embodiment of the present invention.
  • 65 is a conceptual diagram illustrating a typical case where the device receiving the text message is a text message server.
  • 66 is a flowchart showing an algorithm of the step of registering emergency contact information in the ninth embodiment of the present invention.
  • 67 to 68 are examples of smartphone screens for registering emergency contact information.
  • 69 is an example of JavaScript code for creating an urgent text message in the ninth embodiment of the present invention.
  • 70 is an example of an urgent text message sent in the ninth embodiment of the present invention.
  • 71 is a flow chart showing an algorithm of the step of automatically sending a text message in the tenth embodiment of the present invention.
  • an outdoor map or an indoor map can be sent as a text message and shared with a recipient. That is, the seventh embodiment of the present invention relates to a method for sharing an indoor/outdoor place visible on a map app with a receiver by sending a text message, It consists of a sender sending a text message and a recipient selecting a received text message and executing a map app.
  • FIG. 54 is a flow chart showing the algorithm of the sender sending a text message, and the sender selecting a place to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app.
  • the sender executes a menu to send the selected place as a text message
  • the map app includes a URL (Uniform Resource Locator) including map parameters corresponding to the selected place as a search string. and creating a text message body for sending the text message, selecting a recipient by the sender and sending the text message.
  • URL Uniform Resource Locator
  • the step in which the recipient selects the received text message to launch the map app the step in which the recipient selects the received text message to launch the map app that runs as a web app, and the map app launches the map from the search string included in the URL
  • a step of extracting parameters (parse) and a step of displaying the initial screen so that places visible on the initial screen of the map app match the extracted map parameters.
  • Map parameters corresponding to the selected place include geographic coordinates, building ID and floor, as well as zoom and rotation of the map area. It is desirable to do
  • the building ID is given as a natural number of 1 or more when a building at view center exists, and is given as a number other than a natural number when the building at view center does not exist. For example, it can be given as -1.
  • the floor is given as 0 when the central building does not exist, and given as an integer when there is a central building and an indoor map is displayed, and the central building exists but indoors If the map is not displayed, it is given as a non-integer number. For example, it can be given as Infinity.
  • a JavaScript code for extracting (parsing) a map parameter from a search string (window.location.search) included in a URL and storing it in session storage, and is a part of an index page (index.html).
  • searchParams After replacing all colons (":") with ampersands ("&") in the search string, create a URLSearchParams object named searchParams from this search string. If this object is not an empty object (""), a new session storage (window.sessionStorage) is created.
  • sessionMapParameters a mapParameters object named sessionMapParameters is created from these eight variables and stored in the session storage.
  • sessionMapParameters you must first convert them into strings. After that, the corresponding landing page is started by determining the device type and screen mode.
  • map parameter object 56 is the JavaScript code for creating a map parameter object.
  • the northbound distance, eastbound distance, latitude, longitude, zoom, rotation, building ID, and floor passed as map parameters are stored in internal variables named __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, and __floor, respectively. . If both northbound and eastbound distances have valid values (line 4), the latitude and longitude are calculated from the northbound and eastbound distances (lines 6 and 8) and stored as a location object (line 10). If either of the northbound and eastbound distances do not have valid values, check whether latitude and longitude both have valid values.
  • both latitude and longitude have valid values, save them as a location object (line 11). If neither latitude nor longitude has a valid value, the location object is set to null (line 12). If the location object is not null (line 14), zoom, rotation, building ID, and floor are investigated, and if there is a value, the value is saved. If there is no value, the default value is used (lines 16 to 26).
  • the step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters is the step of storing the extracted map parameters in session storage, using a media query Determining the device type and screen orientation, launching a landing page suitable for the device type and screen orientation, and storing the landing page in the session storage It includes getting map parameters, designating the map parameters retrieved from the session storage as target map parameters, and setting a map object to match the target map parameters.
  • the map app is started with the geographical coordinates. If both northbound and eastbound distances and latitude and longitude are included, use the northbound and eastbound distance values. If the URL does not contain geographic coordinates, the Maps app is launched with the starting map parameters stored in local storage. If the starting map parameters are not also saved, the map app will be launched with the default map parameters.
  • the building ID and floor are valid values, it informs the exact location on the indoor map. If not, it is regarded as outdoor and only the outdoor map is displayed on the initial screen of the digital map. If zoom and rotation are included, the map screen sent by the sender is reproduced on the recipient's device as it is, otherwise only the location is indicated.
  • the digital map of the embodiment of the present invention shown in FIG. 25 is executed as a web app, more preferably as a Progressive Web App (PWA).
  • a web app has a control pane and a view, and can have an address bar (URL bar, address bar, location bar). Even a web app can use a WebView that hides the address bar, so the address bar is not always exposed in a web app.
  • a view is a map screen on which a map is displayed and has a rectangular shape.
  • a view and a map screen, or more simply, a screen are used in the same sense.
  • the outdoor map displayed on the map screen will be referred to as a map area.
  • the control window displays (geodetic) latitude, longitude, distance north, distance east, zoom, rotation, etc., and has various control menus to interact with the digital map.
  • FIG. 26 is an enlarged view of a part of the control window of FIG. 25 . Since a vertical slider is attached to the control window, moving the vertical slider scrolls the control window in a vertical direction, so that different menus can be displayed.
  • the values such as latitude and longitude, northward distance, eastward distance, zoom, rotation, etc. displayed on the control window are recalculated and displayed in real time. do.
  • the latitude and longitude shown in the control window, or the northward and eastward distances that can be converted to and from them, are precisely the geographic coordinates of the point corresponding to the view center.
  • a center marker is attached to the view so that users can know exactly where the center of the view is. For example, even if the map area visible in the view changes due to panning, the center marker is always fixed at the center of the view.
  • is the geodetic latitude
  • is the longitude
  • R is the Earth's mean radius, for which 6,378,137 m can be used.
  • N is northing
  • E is easting.
  • the range of the outdoor map visible in the view is referred to as a view extent.
  • the view range can be specified as the minimum and maximum values of the latitude and longitude of the map area. However, it is more common to specify by zoom in addition to a pair of latitude and longitude of the center of the map area, or a pair of distance north and east. That is, the view range may be displayed with the geographical coordinates and zoom of the center of the map area, or with the minimum and maximum values of the geographical coordinates. Also, the resolution of the map may be specified instead of the zoom of the digital map. The resolution of a map means how many geographical coordinate intervals one pixel on the map screen corresponds to.
  • a digital map can be rotated using two fingers on a smartphone (pinch rotate), and a map can be rotated using a dial shown in the lower right corner of FIG. 25 . Therefore, the outdoor map shown in the view is completely determined by specifying all three values of the geographic coordinates of the center of the view, zoom, and rotation.
  • a pair of latitude and longitude, or a pair of interconvertible north and east distances indicates a horizontal location on the Earth.
  • Latitude and longitude, or latitude and longitude plus altitude are called geographic coordinates.
  • geographical coordinates indicating a location in a horizontal direction will be referred to as a location.
  • a location is given as a pair of longitude and geodetic latitude, i.e. [longitude, latitude], or a pair of easting and northing distances, i.e. [distance easting, that is interchangeable with a pair of longitude and latitude. , northbound distance].
  • Square brackets ([]) represent an array in JavaScript. We will collectively refer to these as map parameters.
  • Map parameters corresponding to an outdoor map visible in the view will be referred to as view map parameters.
  • the view map parameters include the view location viewLocation, the view zoom viewZoom, and the view rotation viewRotation, where the view location is an array of longitude and latitude of the view center ([longitude, latitude]) , or as an array of Easting Distance and Northwarding Distance ([Easting Distance, Northward Distance]).
  • a map service provider must decide which region to display at the beginning when a user starts a digital map. The most common way is to show a map of your current location. When you start Google Maps or Naver Maps on your smartphone, the location is determined from the GPS signal and a map of the current location is displayed.
  • a screen like FIG. 25 may be displayed whenever a digital map is started.
  • it is a digital map used only by one person, as shown in FIG. 21, the starting position of the map cannot be designated in the digital map program itself.
  • Local storage can be referred to as a memory space that can be used semi-permanently by an internet browser. That is, data stored in the local storage exists in a device supporting an Internet browser until the corresponding data is intentionally deleted.
  • a typical example of a device could be a PC or a smartphone.
  • the geographical coordinates, zoom, and rotation must all be the same.
  • latitude and longitude should be given as 36.40658543° and 127.43884349°, respectively.
  • a zoom level of 13.5 is appropriate for viewing the entire Mt. Gyejok at a glance.
  • the map must be rotated 270°.
  • FIG. 27 shows the JavaScript code of the map object of the present invention. Instead of specifying the view center and zoom directly, they are specified indirectly using the parameters goal location goalLocation and goal zoom goalZoom.
  • the goal location is given as an array of goal longitude goalLon and goal latitude goalLat, namely [goalLon, goalLat]. Also, if the map needs to be rotated, that value is stored in the goal rotation goalRotation. Goal Rotation The goalRotation is set in degrees, but since OpenLayers uses the unit of radians, convert it to radians and rotate the map accordingly.
  • the map screen displayed when the map app starts can be called the initial screen.
  • the initial screen refers to a map screen before changing geographic coordinates, zoom, rotation, etc. of the center of a view through user interaction.
  • the initial screen of the digital map is determined through the setting of a map object.
  • the default map parameters consist of default latitude default_latitude, default longitude default_longitude, default zoom default_zoom, and default rotation default_rotation.
  • the basic position is the position of the statue of King Sejong the Great in Gwanghwamun, the basic zoom is 17.0, and the basic rotation is 0°.
  • start map parameters include start latitude start_latitude, start longitude start_longitude, start zoom start_zoom, and start rotation start_rotation, and have an initial value ( initial values) are all set to 'null'.
  • map parameters include start location start_location, start zoom start_zoom, and start rotation start_rotation.
  • the view map parameters are saved to local storage as the starting map parameters.
  • 'view map parameters' do not refer to the map parameters of a physical place where a device such as a smartphone or computer is located, but rather the setting of the map displayed in the view of the map app. .
  • the map parameters of Mount Everest are saved to the local storage as 'start map parameters'.
  • the Maps app checks to see if valid 'start map parameters' are stored in local storage, and if so, assigns them as 'goal map parameters'. You can make Mount Everest visible on the start screen of your digital map. On the other hand, if you want to show 'Mokcheok 1-gil 21' the next time you start the digital map, you can move the map area to 'Mokcheok 1-gil 21' in the map app and press the 'Save current screen as start screen' button. However, you can specify it more conveniently by pressing the 'find current location using GPS' button first to show the user's location on the map, and then pressing the 'save current screen as start screen' button.
  • a key-value pair must be used in the form of a JavaScript object, and the key must be given as a string. Therefore, if you want to give a value of 36.0 to a key called start_latitude and store it in local storage, you can execute the JavaScript command window.localStorage.setItem("start_latitude", 36.0). And to get this value, run the command window.localStorage.getItem("start_latitude”). However, the value obtained in this way is given as a string, not a real number. Therefore, a process of converting it to a real number is required. Taking all of this into account, you can run a command like this:
  • 29 is a flow chart showing an algorithm of steps for executing a digital map after saving starting map parameters.
  • the map app checks to see if the starting map parameters are stored in local storage. If there is a saved starting map parameter, the starting map parameter is retrieved and set as the target map parameter. If there is no saved starting map parameter, the default map parameter is specified as the target map parameter. Finally, the initial screen is displayed so that the map area of the initial screen matches the target map parameters.
  • FIG. 30 shows JavaScript code that specifies goal map parameters. If the values stored in the keys start_latitude and start_longitude are both valid (not null), those values are designated as goalLat and goalLon, respectively, and the values stored in the keys start_zoom and start_rotation are also designated as goalZoom and goalRotation, respectively. If either value is invalid (null), the base map parameter is set as the target map parameter. After all, if valid starting map parameters are stored in local storage, the Maps app will start with starting map parameters, otherwise it will start with default map parameters.
  • FIG. 31 is a diagram showing an initial screen of a digital map in the first embodiment of the present invention.
  • the initial screen shows Gwanghwamun Square that matches the default map parameters.
  • the step of storing the starting map parameters begins with a step in which the user selects a map area to be displayed on the initial screen of the map app through interaction with the map app.
  • FIG. 33 shows a main screen of a map app executed as a web app.
  • the map area visible in the view is specified by view map parameters.
  • At the top left of the view is a plus (+) button to increase zoom and a minus (-) button to decrease zoom.
  • At the bottom right is a dial that lets you rotate the map.
  • you can change the map area by placing the mouse cursor on the map shown in the view, pressing the left mouse button and dragging, and you can change the zoom by turning the mouse wheel. In this way, you can change the map area visible in the view.
  • the view map parameters are latitude 36.40658543°, longitude 127.43884349°, zoom 17.0, and rotation 277.0°.
  • the control window of FIG. 33 includes a menu button for storing start map parameters (button for storing start map parameters) and a menu button for erasing start map parameters (button for erasing start map parameters).
  • the name of the menu button to save the start map parameters is 'Save current screen as start screen', and the name of the menu button to delete start map parameters is marked 'Clear start screen'.
  • the map parameters corresponding to the selected map area that is, the view map parameters are saved as the starting map parameters in the local storage.
  • 34 shows the initial screen of restarting the map app after saving the starting map parameters. It can be seen that the map area visible in the view is the same as the map area of FIG. 33 .
  • the starting map parameters instead of saving the starting map parameters to local storage, it is also possible to store them on the app server.
  • a device such as a PC or a smartphone must be connected to the Internet, and secondly, a user login must be performed.
  • the most desirable method is to first save it to local storage, then check if the user is logged in to the app server, and if so, save the start map parameters to the app server as well.
  • the starting map parameter is designated as the target map parameter. If the starting map parameters are not stored in the app server, check if the starting map parameters are stored in the local storage. If valid values are stored in the local storage, the starting map parameter is designated as the target map parameter. If the value is not stored in both the app server and local storage, set the base map parameter as the target map parameter.
  • a user who uses the map service of the present invention with a PC or smart phone can personalize the map area displayed on the initial screen of the digital map for each device.
  • the second embodiment of the present invention sends the URL (Uniform Resource Locator) of the digital map as a text message, and when the receiver selects the received text message, the digital map starts as a web app and is sent to the initial screen of the map app. It is an invention related to a method for making a map area sent by a sender visible. The act of selecting a text message includes both clicking with a mouse and tapping on a touch monitor.
  • Example 1 is a method for personalizing the map area shown on the initial screen of a map app running as a web app on a user's device
  • the invention of Example 2 is executed as a web app on a recipient's device that receives a text message.
  • This is a one-time personalization of the map area shown on the initial screen of the map app.
  • the second embodiment of the present invention is to share a map area shown on a map screen (view) of a digital map executed as a web app with a recipient.
  • An invention relating to a method of sending a text message This embodiment consists of sending a text message by the sender and executing a map app by selecting the received text message by the recipient.
  • 35 is a flowchart showing an algorithm of a sender sending a text message. This step starts with the sender selecting a map area to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app.
  • the first embodiment of the present invention It is the same as the step of selecting a map area in .
  • the sender executes a menu to send the selected map area as a text message.
  • the Maps app provides a uniform resource URL (URL) that includes geographic coordinates corresponding to the selected map area and map parameters including zoom and rotation as a search string.
  • the text message body including the Locator is written in the text message window.
  • an anonymous function is executed.
  • the JavaScript code inside this anonymous function is the source code for the map app to send SMS (Short Message Service) map parameters corresponding to the selected map area.
  • SMS Short Message Service
  • Such a function can be implemented in various ways, and the code presented in FIG. 36 is just one example.
  • a URLSearchParams object instance with no content is created with the name searchParams.
  • the viewNorthing of the view center is appended to searchParams with a key of northing.
  • viewEasting, zoom, and viewRotation of the center of the view are added to searchParams with keys called easting, zoom, and rotation, respectively.
  • latitude and longitude may be used instead of distances north and east, distances north and east were used to indicate distance units.
  • the prepared searchParams are JavaScript objects. Convert this JavaScript object to a string using the toString() method. For the map area shown in FIG. 33, the converted character string is given as follows.
  • the ampersand (&) included here means 'and'.
  • a problem may occur in the process of adding the URL including this ampersand to the text message body. Specifically, the program may be confused about where the body of the text message is. To avoid this problem, use the replace(/&/g, ':') method to change all ampersands (&) to colons (:). The reason why the colon was chosen among the many symbols is purely because the finished string looks good and is easy to read. Therefore, the command searchParams.toString().replace(/&/g, ':') returns the following string.
  • an anchor element named linkSMS is created in the document, and in line 23, it is attached to the document as a child element (appendChild).
  • the recipient to receive the text message is not specified, but if you do this, a dialog box prompting you to select a recipient appears on the smartphone.
  • the most common anchor element in Internet documents is an HTML link to another web page.
  • click() is a command that can replace mouse clicks or touches with programs.
  • Line 27 programmatically clicks the anchor (linkSMS) created in this way to send a text message.
  • FIG. 37 to 39 are examples of sending map screens through text messages from a smartphone.
  • 37 is a screen for executing the 'send screen by text message' menu on the inventor's smartphone
  • FIG. 38 is a screen for sending a text message to the inventor's own smartphone
  • FIG. 39 is a reception screen. This is the screen where you started the map app by clicking on the text message.
  • FIG. 40 is a flowchart illustrating an algorithm of a step of executing a map app by selecting a received text message by a recipient.
  • the recipient selects the received text message to start the map app (launch), the map app extracts map parameters from the search string included in the URL (parse), and the map app appears on the initial screen of the app. and displaying an initial screen so that the map area conforms to the extracted map parameters.
  • the method of extracting map parameters can be implemented in various ways, but the simplest method is to use URLSearchParams once again.
  • the colon (:) used in place of the ampersand (&) in the text message transmission process must be replaced with an ampersand again. If you execute the command window.location.search.replace(/:/g, '&'), all colons are replaced with ampersands as follows.
  • a URLSearchParams object with the name of searchParams is created from the string replaced in this way. After reading the value corresponding to the key using the get() method in searchParams, you can get the map parameter by converting it by mistake.
  • the northbound distance can be obtained as follows, and the eastbound distance and zoom and rotation can all be obtained in the same way.
  • the device that sends the map screen as a text message and the device that receives the text message are of the same type and have the same screen mode, a code like this is sufficient.
  • the devices may not be the same, such as sending from a PC to a smartphone or from a smartphone to a PC.
  • the screen can be used in landscape mode or portrait mode. In this case, it is convenient to use a web page with a different layout. For example, if the device is a PC, the landing page could be named indexDesktopLandscape.html.
  • the name of the landing page can be indexMobilePortrait.html
  • the screen mode is landscape mode
  • the name of the landing page can be indexMobileLandscape.html. Therefore, as illustrated in FIG. 24, after determining the type of device and screen mode on the index page (index.html), it is necessary to redirect to an appropriate landing page.
  • variables are not shared between different web pages. For example, if you select a text message received from your smartphone and run the map app in portrait mode, the indexMobilePortrait.html page should be executed, but the map parameters extracted from the index.html page cannot be viewed in the indexMobilePortrait.html page. none.
  • a method for solving such a problem is to use a session storage. Local storage and session storage are defined in Internet standards and can be used by all Internet browsers.
  • Local storage is a storage method that stores variables as key-value pairs in the device's hardware and can be used continuously until intentionally deleted.
  • session storage is a storage method that can be used temporarily only while the Internet browser is running, and is used to transfer variables between web pages. Variables stored in the session storage disappear as soon as the Internet browser is closed.
  • storing variables in local storage and storing variables in session storage are virtually the same. For example, how to store the value of a variable called northing in a key called 'northing' in local storage and session storage is as follows.
  • FIG. 42 An algorithm corresponding to the type of device and screen mode using such session storage is shown in FIG. 42 .
  • the Maps app When the recipient selects the received text message, the Maps app is launched with the URL included in the text message.
  • the JavaScript code contained in the index page (index.html) retrieves the search string from the location object contained in the URL.
  • the search string can be obtained with window.location.search.
  • indexDesktopLandscape.html a landing page designed for PC. If the device type is a smartphone, you can start with indexMobilePortrait.html for portrait mode and indexMobileLandscape.html for landscape mode.
  • map parameters are fetched from the session storage, and the index page (index.html) is closed. Finally, the initial screen is displayed so that the map area visible on the initial screen matches the map parameters.
  • Embodiment 1 of the present invention relates to a method for personalizing the initial screen of a map app
  • embodiments 2 and 3 are methods for one-time personalizing the initial screen of a map app executed on a device of a recipient who receives a text message. It is an invention about Then, when the recipient has personalized the initial screen of the map app, there is a problem of what to do with the map area displayed on the initial screen of the map app when a text message is received and selected as in Embodiments 2 and 3.
  • FIG. 43 is a flowchart showing an algorithm for displaying an initial screen of a digital map on a landing page.
  • the map app first checks whether valid map parameters are stored in the session storage. If valid map parameters are stored, get the map parameters from session storage and set them as target map parameters. If valid map parameters are not stored in session storage, this time we check if valid starting map parameters are stored in local storage. If a valid starting map parameter is stored, the starting map parameter is retrieved from local storage and assigned as the target map parameter. If there are no starting map parameters stored in local storage, the base map parameters are set as target map parameters. Finally, the initial screen is displayed so that the map area visible on the initial screen of the digital map matches the target map parameters.
  • an indoor map is displayed at the correct location on the outdoor map. For example, if an indoor map of a department store or shopping mall is registered, a business name is displayed at the location of each store on the indoor map, and when the business name is selected, the homepage or online shopping mall may be connected.
  • a location on an outdoor map and a location on an indoor map are collectively referred to as a place.
  • a place is a concept that includes geographic coordinates given as a pair of longitude and geodetic latitude, or a pair of longitude and geodetic latitude, and a pair of interconvertible distances east and north, and a floor within a building. .
  • the zoom and rotation of the digital map are not included in the concept of place. That is, the fifth embodiment of the present invention is an invention for personalizing indoor/outdoor places shown on the initial screen of a map app.
  • FIG. 44 shows an indoor map of the second floor of the OK Venture Town building where the applicant's office is located.
  • a floor must be added to the map parameters in addition to the distance north and east, and zoom and rotation must be added to reproduce the map screen of FIG. 44 as it is.
  • 45 is a flowchart showing an algorithm for displaying an initial screen of a digital map having a starting map parameter including layers.
  • the map app checks whether there are starting map parameters stored in the local storage. If there is a saved starting map parameter, the starting map parameter is retrieved and set as the target map parameter. If there is no saved starting map parameter, the default map parameter is specified as the target map parameter. Finally, the initial screen is displayed so that the place visible on the initial screen matches the target map parameters.
  • 46 is a conceptual diagram for explaining a search area necessary for personalizing a place visible on the initial screen of a digital map including indoors, that is, a start place.
  • 46 shows the outlines of four buildings. These buildings are buildings whose building center is included in the view extent.
  • representative points of each building are indicated by points. It is desirable to set the representative point of each building as the centroid of the geometry representing the outline of the building, but if the shape of the geometry is unique, a point within the building may be arbitrarily selected apart from the centroid.
  • the step of displaying the initial screen so that the place visible on the initial screen of the map app meets the target map parameters includes the following steps. First, the view range is determined from the target map parameters and the outdoor map is displayed. Then, a search area including a view extent is determined.
  • the search range is the range of geographic coordinates to search for buildings in the building database.
  • the search range can be made the same as the view range, but it is preferable to make it larger than the view range. For example, the search range can be centered with the view range, have the same shape, and have twice the area.
  • the building database is searched and a list (Bld_ID) of buildings whose representative points are included in the search range is created.
  • a list of buildings to display outlines (bldIDsToShow) is created by comparing the zoom level (zoomShowBld) of each building and the zoom level (viewZoom) of the digital map, and Building outline drawings are retrieved from the building data store and marked in the correct location on the outdoor map.
  • the floor plan display zoom level (zoomShowFloor) and the digital map zoom level (viewZoom) are compared to create the floor plan display target building list (floorplanIDsToShow).
  • the buildings in the list of buildings to be displayed as floor plans check if they are buildings with a ground floor, and the floor plans of the buildings with ground floors are retrieved from the building data storage and displayed in the correct location on the outdoor map.
  • FIG. 47 is an example in which the indoor map of the second floor of OK Venture Town is displayed on the initial screen of the digital map by applying the algorithm, and it can be seen that the same map screen as in FIG. 44 is displayed as the initial screen.
  • the list of buildings to be displayed in a floor plan should not be created before the list of buildings to be displayed with outlines (bldIDsToShow) is completed.
  • Retrieving the building database or fetching the outline drawing or floor plan of the building from the building data store and displaying it in the correct location on the outdoor map is done asynchronously. Nevertheless, a program must be written so that the steps described above operate synchronously in nature, i.e., the next step begins only after the previous step has finished.
  • FIG. 48 shows a state in which the right corridor of the Daejeon Jungang-ro Underground Shopping Center is designated as the starting point of the digital map, and FIG. 50 shows the initial screen of the digital map.
  • the outdoor map is reproduced with the same geographical coordinates, zoom, and rotation, but it can be seen that the indoor map is not displayed.
  • Daejeon Jungang-ro Underground Shopping Center is a relatively large underground shopping center with about 490 stores. However, when the centroid of the figure representing the outline of this underground shopping center is obtained, it is not located within the outline of this underground shopping mall. Therefore, the representative point of this underground shopping mall was arbitrarily matched with the center of the intersection of Jungang-ro, Daejeon.
  • the view extent of the digital map is biased towards the right corridor of the underground shopping mall.
  • the building center of the underground shopping mall is not included in the search area as well as the view extent. Therefore, even if the search range is determined in the target map parameter and then the building database is searched, this Daejeon Jungang-ro Underground Shopping Center cannot be searched. Therefore, only the outdoor map is displayed in FIG. 50, and the indoor map is not displayed.
  • the most preferred way to solve this problem is to include a unique building identification number, that is, a building ID (bldID) of a building in the map parameter in addition to the floor.
  • the map parameters include geographical coordinates, building IDs, and floors, and may further include zoom and rotation of the digital map.
  • the concept of place shall include geographical coordinates, building ID, and floor.
  • the sixth embodiment of the present invention is a method for personalizing an indoor/outdoor place shown on the initial screen of a digital map executed as a web app for each device.
  • the related invention consists of storing start map parameters and executing a map app.
  • the step of storing the starting map parameters is a step in which the user selects a place to be displayed on the initial screen of the map app through interaction with the map app, and a step in which the user registers the selected place as a start place.
  • the step of executing the menu, the map app stores map parameters including geographic coordinates corresponding to the starting place, building ID, bldID, and floor in the device's local storage ( local storage) as a starting map parameter.
  • the geographic coordinates, the building ID (bldID), and the floor in the building must be included in the starting map parameters, and the zoom of the digital map It is desirable to include zoom and rotation as well.
  • the building ID and floor a special number is used to inform the program that it is outdoors without substituting a null value when there is no building outside. The reason for not using null values is to store values as floats or integers when storing starting map parameters in local storage.
  • the only condition required for building IDs is that all buildings have different IDs. Therefore, just as you decide on an ID when signing up for an SNS site, you can use a combination of English letters and numbers for your building ID. That is, the building ID can be 'BurjKhalifa0' or 'tallest_building_in_the_world_1'.
  • the building ID is set in this way, time is wasted unnecessarily in searching for the building in the database.
  • the building ID is not for user login to the map app, but for distinguishing buildings by registering them in a building database. Therefore, it is preferable to set the building ID as the simplest natural number, and the system sequentially recommends the number, but the user can ignore the recommended number and use the number he or she prefers.
  • the building ID of OK Venture Town is 1
  • the building ID of Daejeon Jungang-ro Underground Shopping Center is 101
  • the building ID of Daejeon Station Underground Shopping Center is 102.
  • the building ID of a place where no building exists can be set to -1. In other words, if the building ID included in the starting map parameter is -1, you can know that the place has no buildings.
  • the floor of the room is given as an integer.
  • Daejeon Jungang-ro Underground Shopping Center is a building without a ground floor. If you do not select B1 (B1) of Daejeon Jungang-ro Underground Shopping Center at the Daejeon Jungang-ro Intersection, the digital map does not display the indoor map of Daejeon Jungang-ro Underground Shopping Mall, only the outline of the building is displayed. The layer at this time can be displayed as infinity. Infinity is defined as a valid number in JavaScript syntax. Accordingly, if the building ID is a natural number greater than or equal to 1 and the number of floors is infinite, it is determined that the building exists at the geographical coordinates but the user is not inside the building. For example, you can think of standing in the middle of a crossroads on Jungang-ro, on the roof of a building, or trying to land on top of a building by parachute.
  • the steps of launching the map app include the user starting the map app, the map app checking whether there are starting map parameters stored in the device's local storage, and if there are the starting map parameters stored, the starting map parameters are the target. Specifying as goal map parameters, and if there is no saved start map parameter, specifying default map parameters as target map parameters, the place shown on the initial screen matches the target map parameters and displaying an initial screen to
  • FIG. 53 is a flowchart illustrating an algorithm of a step of displaying an initial screen such that a place visible on the initial screen of a map app matches a target map parameter.
  • a start map area is determined from the target map parameters, and an outdoor map is displayed in a view.
  • a search range is determined from the starting map area according to a predetermined rule.
  • buildings whose representative points are located within the search range are searched in the building database to create a view range building list (Bld_ID).
  • the view range building list is an array of building IDs (bldID) of buildings whose representative points are located within the search range.
  • goalBldID the building ID included in the target map parameter is a valid building ID. If goalBldID is -1, it is an invalid building ID, and if it is a natural number greater than 1, it is a valid building ID. If goalBldID is a valid building ID, check if this building ID is included in the view range building list (Bld_ID), and if not included, search for a building with this building ID in the building database and add it to the view range building list.
  • Bld_ID view range building list
  • the outline display target building is a list of buildings whose zoom level for showing building outline (zoomShowBld) is smaller than the zoom level of the digital map among the buildings in the view range building list.
  • building outline drawings of the buildings in the list of buildings to be marked as outlines are retrieved from the building data store and displayed at correct locations on the outdoor map. After that, the same plan view display step as in Example 5 is performed. If this method is used, the place shown in FIG. 49 is also registered as a starting place and operates without errors.
  • an outdoor map or an indoor map can be sent as a text message and shared with a recipient. That is, the seventh embodiment of the present invention relates to a method for sharing an indoor/outdoor place visible on a map app with a receiver by sending a text message, It consists of a sender sending a text message and a recipient selecting a received text message and executing a map app.
  • FIG. 54 is a flow chart showing the algorithm of the sender sending a text message, and the sender selecting a place to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app.
  • the sender executes a menu that sends the selected place as a text message, and the map app includes a URL (Uniform Resource Locator) including map parameters corresponding to the selected place as a search string. and creating a text message body for sending the text message, selecting a recipient by the sender and sending the text message.
  • URL Uniform Resource Locator
  • the step in which the recipient selects the received text message to launch the map app the step in which the recipient selects the received text message to launch the map app that runs as a web app, and the map app launches the map from the search string included in the URL
  • a step of extracting parameters (parse) and a step of displaying the initial screen so that places visible on the initial screen of the map app match the extracted map parameters.
  • Map parameters corresponding to the selected place include geographic coordinates, building ID and floor, as well as zoom and rotation of the map area. It is desirable to do
  • the building ID is given as a natural number of 1 or more when a building at view center exists, and is given as a number other than a natural number when the building at view center does not exist. For example, it can be given as -1.
  • the floor is given as 0 when the central building does not exist, and given as an integer when there is a central building and an indoor map is displayed, and the central building exists but indoors If the map is not displayed, it is given as a non-integer number. For example, it can be given as Infinity.
  • a JavaScript code for extracting (parsing) a map parameter from a search string (window.location.search) included in a URL and storing it in session storage, and is a part of an index page (index.html).
  • searchParams After replacing all colons (":") with ampersands ("&") in the search string, create a URLSearchParams object named searchParams from this search string. If this object is not an empty object (""), a new session storage (window.sessionStorage) is created.
  • sessionMapParameters a mapParameters object named sessionMapParameters is created from these eight variables and stored in the session storage.
  • sessionMapParameters you must first convert them into strings. After that, the corresponding landing page is started by determining the device type and screen mode.
  • map parameter object 56 is the JavaScript code for creating a map parameter object.
  • the northbound distance, eastbound distance, latitude, longitude, zoom, rotation, building ID, and floor passed as map parameters are stored in internal variables named __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, and __floor, respectively. . If both northbound and eastbound distances have valid values (line 4), the latitude and longitude are calculated from the northbound and eastbound distances (lines 6 and 8) and stored as a location object (line 10). If either of the northbound and eastbound distances do not have valid values, check whether latitude and longitude both have valid values.
  • both latitude and longitude have valid values, save them as a location object (line 11). If neither latitude nor longitude has a valid value, the location object is set to null (line 12). If the location object is not null (line 14), zoom, rotation, building ID, and floor are investigated, and if there is a value, the value is saved. If there is no value, the default value is used (lines 16 to 26).
  • the step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters is the step of storing the extracted map parameters in session storage, using a media query Determining the device type and screen orientation, launching a landing page suitable for the device type and screen orientation, and storing the landing page in the session storage It includes getting map parameters, designating the map parameters retrieved from the session storage as target map parameters, and setting a map object to match the target map parameters.
  • the map app is started with the geographical coordinates. If both northbound and eastbound distances and latitude and longitude are included, use the northbound and eastbound distance values. If the URL does not contain geographic coordinates, the Maps app is launched with the starting map parameters stored in local storage. If the starting map parameters are not also saved, the map app will be launched with the default map parameters.
  • the building ID and floor are valid values, it informs the exact location on the indoor map. If not, it is regarded as outdoor and only the outdoor map is displayed on the initial screen of the digital map. If zoom and rotation are included, the map screen sent by the sender is reproduced on the recipient's device as it is, otherwise only the location is indicated.
  • At least two external environments are required to send a text message to a place shown on the screen by running a map app that runs as a web app on a smartphone. It has to be the internet, it has to be text messages. In addition, GPS sensors must work to send geographic coordinates as text messages in unfamiliar places where there is no address or where the location cannot be guessed. The GPS sensor works by receiving signals from satellites, so it must be in a place where you can see the sky, but it has nothing to do with wireless Internet or telephone networks.
  • wireless Internet may not work outdoors. If the internet isn't working, you can't connect to the app server, outdoor map server, building database, or building data store. Therefore, you cannot use a map app written as a web app.
  • PWA progressive web app
  • Google Chrome Google Maps, Naver Maps, and Kakao Maps are native apps
  • D.E.map https://map.digitalearth.land
  • An eighth embodiment of the present invention relates to a method for sending GPS coordinates as a text message in an environment where the Internet is not available and even an outdoor map is not available.
  • FIG. 59 shows the initial screen of executing the map app written in PWA. For the test, both WiFi and data usage were blocked, but the app runs normally.
  • the menu button 'send GPS coordinates by text message' was selected. This menu button has the name btnSendGPSCoordsBySMS.
  • 60 to 61 show a part of JavaScript code that implements an algorithm for sending GPS coordinates as a text message.
  • an event listener is connected to the 'Send GPS coordinates as text message' menu button (btnSendGPSCoordsBySMS).
  • the menu button When the menu button is selected (click or tap), it checks whether the Geolocation API is supported, and if supported, calls the API that reads the current location from the GPS sensor once.
  • the geolocation API is defined in the Internet standard, and getCurrentPosition (success, error, options) is an API that reads the coordinates only once by operating the GPS sensor. The success function is called if this API was executed successfully, and the error function is called if it fails. Options define how to call this API.
  • the option obtains location information with a high level of precision (enableHighAccuracy: true), the browser can wait indefinitely for calculating the current location (timeout: Infinity), and the obtained information can be reused within 100 ms (maximumAge: 100) is the meaning. Also, if location information is successfully obtained, sendGPSCoordsBySMS function is executed, and if it fails, onGPSPositionError function is executed.
  • 61 shows the source code of the sendGPSCoordsBySMS function.
  • This function When this function is called, a position object with an internal name of _position is passed.
  • the location object has a timestamp object and a coordinates object.
  • the coordinate objects are latitude, longitude, altitude, accuracy for latitude and longitude, accuracy for altitude, heading of the device, and movement of the device. It has attributes called speed. Therefore, the following two lines of code are required to obtain geographic coordinates consisting of latitude and longitude from a location object.
  • GPSLat _position.coords.latitude
  • FIG. 62 shows a smartphone screen in which the inventor sent a text message to himself as the recipient.
  • FIG. 63 shows a screen where a map app is executed by turning on Wi-Fi again and selecting a text message. The reason I turned on the wifi is because I need to get the map tiles corresponding to the geographic coordinates contained in the search string.
  • the invention of the eighth embodiment of the present invention is an invention related to a method of sharing GPS coordinates with a receiver by sending a text message, and the sender sends the text message and the receiver receives the It consists of selecting a text message and launching the map app.
  • 64 is a flowchart showing the algorithm of the sender sending a text message, the sender starting a map app, the sender executing a menu to send GPS coordinates as a text message, and the map app sending a geolocation API (Geolocation API) to obtain a position object, the map app to read geographic coordinates from the acquired location object, the map app to include the geographic coordinates as a search string Creating a text message body including a URL (Uniform Resource Locator), and sending the text message by the sender selecting a recipient.
  • a geolocation API Geolocation API
  • the step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the received text message to launch the map app, and the map app extracts geographic coordinates from the search string included in the URL.
  • the parsing step includes displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates.
  • the step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographic coordinates is to store the map parameters by adding default values for zoom and rotation to the extracted geographic coordinates.
  • (session storage) step using a media query (media query) to determine the device type (type) and screen orientation (screen mode) step, the device type and screen orientation (landing page suitable for the screen direction) landing page), fetching the map parameters stored in the session storage from the landing page, specifying the map parameters retrieved from the session storage as target map parameters, and matching the target map parameters. It involves setting up a map object.
  • the situation in which GPS coordinates are sent by text message is probably a situation in which help is urgently requested from the National police Agency, the Fire Administration, or the Ministry of Foreign Affairs.
  • the recipient of the text message is not an individual but a call center. Call centers will not accept calls or text messages on their smartphones.
  • the device will be a PC connected to an SMS center or an SMS gateway, that is, a text message server.
  • the ninth embodiment of the present invention relates to a method for sharing GPS coordinates with a previously set receiver in a text message, and the sender registers emergency contact information. It consists of a step of sending a text message, a step of sending a text message, and a step of executing a map app by the recipient selecting the received text message.
  • 66 is a flowchart showing an algorithm of a step of registering emergency contact information by a sender. This step includes starting the map app by the sender, executing a menu for registering emergency contact information by the sender and including an emergency contact telephone number to receive an emergency text message. Entering emergency contact information, and the Maps app saving emergency contact information to the device's local storage. When the 'register emergency contact information' menu button shown in FIG. 58 is selected, a screen for registering emergency contact information appears.
  • FIG. 67 is an example of a smartphone screen for registering emergency contact information
  • FIG. 68 shows a screen in which an inventor's own smartphone phone number is entered as an emergency contact phone number.
  • a user name and an emergency contact phone number are fields that must be entered, and the rest are fields that can be entered selectively. If emergency contact information is entered and a save button is pressed, emergency contact information including a user name and emergency contact phone number is saved to the local storage of the smartphone.
  • the sender sends a text message
  • the sender starts the map app
  • the sender executes a menu to send the GPS coordinates as a text message
  • the map app calls the geolocation API to create a location object (position object) step
  • the map app reads geographic coordinates from the location object
  • the map app obtains a URL (Uniform Resource Locator) containing the geographic coordinates as a search string
  • a URL Uniform Resource Locator
  • Line 3 gets the username (userName) stored in local storage, and lines 5 and 7 get the phone number to send the pre-composed message and emergency text message to.
  • lines 9 and 11 the latitude (GPSLat) and longitude (GPSLon) are read from the position object _position, and in lines 13 and 15, the distance north (GPSNorthing) and the distance (GPSEasting) are calculated from the latitude and longitude. do.
  • a text message body is created.
  • the text message body includes a URL including geographic coordinates (GPSNorthing, GPSEasting) as a search string, a user name (userName), and a pre-written message.
  • This text message includes a pre-written message suitable for the situation and the minimum personal information of the person to be rescued, and an Internet link where the location of the person to be rescued can be checked on a map.
  • the step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the URL included in the received text message to start the map app running as a web app, and the map app starting the map app from the search string included in the URL. Extracting (parsing) geographic coordinates; and displaying the initial screen so that a map area visible on the initial screen of the map app matches the geographical coordinates.
  • a rescue request can be made quickly with minimal effort in an emergency situation.
  • a rescue request can be made by launching the Maps app, clicking the 'send emergency text message' button, and pressing the confirm button in the text message window.
  • the name of the smartphone owner that is, the person to be rescued
  • a personal identification number such as a resident registration number or passport number for identification of the person to be rescued
  • the phone number of the rescue authority the information required by the rescue authority in the rescue phase.
  • the map app could automatically signal a rescue call when the person to be rescued is unable to send a call for help directly.
  • the most appropriate way to make this possible is to have your app run in the background.
  • An example is Siri on the iPhone.
  • a tenth embodiment of the present invention relates to a method for sharing GPS coordinates with a receiver set in advance in an automatically sent text message, wherein the user provides emergency contact information (emergency contact information). ), the map app automatically sends a text message, and the recipient selects the received text message and executes the map app.
  • emergency contact information electronic mail address
  • the map app automatically sends a text message
  • the recipient selects the received text message and executes the map app.
  • the step of registering emergency contact information by the user is the step of the user starting the map app, the user executing a menu for registering emergency contact information, and selecting an emergency contact telephone number to receive an emergency text message. number), and the map app stores the emergency contact information in the device's local storage, which is substantially the same as the step of registering the emergency contact information in the ninth embodiment.
  • the map app could personalize the conditions for sending an emergency text message. For example, if you shout "Help" with your own voice, an emergency text message is sent, or if you tap the desktop app icon 3 times within 3 seconds, an emergency text message is sent.
  • Conditions that are basically set include a case in which an impact of a certain level or more is applied to the smartphone, or a case in which a certain amount of noise is generated.
  • the condition for sending an urgent text message it would be desirable to allow one or more to be selected, rather than having to select one of them.
  • the step in which the map app automatically sends a text message is the step in which the map app runs in the background and monitors whether the conditions to automatically send an emergency text message are met.
  • the map app calls the Geolocation API to obtain a position object, the map app reads geographic coordinates from the location object, and the map app retrieves the geographic coordinates Creating a text message body including a URL (Uniform Resource Locator) included as a search string, including sending a text message to a pre-registered emergency contact phone number by the map app do.
  • URL Uniform Resource Locator
  • the step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the received text message to start the map app running as a web app.
  • the map app obtains geographic coordinates from the search string included in the URL.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computing Systems (AREA)
  • Emergency Management (AREA)
  • Public Health (AREA)
  • Computational Linguistics (AREA)
  • Educational Administration (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Development Economics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Instructional Devices (AREA)
  • Operations Research (AREA)
  • Image Generation (AREA)

Abstract

Provided is a method for sharing with a receiver by sending a text message including indoor and outdoor places being shown on a map app being executed with a web app. The method comprises the steps of: a sender sending a text message; and a receiver selecting the received text message and executing a map app.

Description

디지털 지도의 초기 화면에 보이는 장소를 개인화하는 방법 및 이를 이용하는 디지털 지도 시스템A method for personalizing a place shown on the initial screen of a digital map and a digital map system using the same
본 발명은 디지털 지도의 초기 화면에 보이는 장소를 사용자별로 개인화할 수 있으며, 더 나아가서 디지털 지도의 화면에 보이는 장소를 문자 메시지로 보내서 수신인이 송신인과 동일한 지도 화면을 볼 수 있는 용이한 방법을 제공한다.The present invention can personalize the place shown on the initial screen of the digital map for each user, and furthermore, provides an easy way for the recipient to view the same map screen as the sender by sending the place shown on the screen of the digital map as a text message. do.
1990년대 후반에는 코드분할다중접속(Code-Division Multiple Access, CDMA)이라는 당시로서는 최신 기술이 탑재된 피처폰(feature phone)이 급속하게 확대되기 시작하였다. 그때 개그맨 이창명씨를 전국적인 스타로 만들어 준 TV 광고가 있었다. 제주도 최남단의 섬인 마라도에서 낚싯배를 타고 있는 사람이 전화로 짜장면을 주문하자, 철가방을 든 배달원(이창명)이 바닷가에서 "짜장면 시키신 분!"이라고 큰 소리로 외치며 손님을 찾는 내용이었다.In the late 1990s, feature phones equipped with the latest technology at the time called Code-Division Multiple Access (CDMA) began to rapidly expand. At that time, there was a TV commercial that made comedian Lee Chang-myeong a national star. When a person on a fishing boat ordered jajangmyeon over the phone from Marado, the southernmost island of Jeju Island, a delivery man (Lee Chang-myeong) carrying a steel bag shouted, “The person who ordered jajangmyeon!”
이 광고는 한 휴대폰 제조사가 '자사의 전화기는 어디서나 잘 터진다.'라는 개념을 코믹하게 호소하기 위하여 고안한 것이었다. 이 광고의 선풍적인 인기로 인하여 바닷가에서 짜장면을 시켜먹는 것이 새로운 유행이 되었으며, 마라도에는 지금도 해물탕집이나 횟집 등 바닷가에 어울릴만한 음식점들이 아니라 다수의 중국집이 성업중이라고 한다.This advertisement was devised by a mobile phone manufacturer to comically appeal to the notion that 'its phones work everywhere.' Due to the sensational popularity of this advertisement, it has become a new trend to order and eat jajangmyeon at the beach, and it is said that many Chinese restaurants are still in business in Marado, not restaurants suitable for the beach, such as seafood soup restaurants and raw fish restaurants.
이제는 스마트폰(smart phone)의 시대이므로 휴대폰(cellular phone)에 GPS(Global Positioning System) 센서와 가속도 센서(acceleration sensor), 지자기 센서(geomagnetic sensor) 등 많은 센서가 내장되어 있고, 또 네이티브 앱(native app, native application)의 형태나 인터넷 브라우저(internet browser)에서 실행되는 웹앱(web app, web application)의 형태로 디지털 지도(digital map)를 사용할 수 있다. 따라서 GPS 센서와 연동되는 지도 앱(map app, map application)을 사용하여 내 위치를 확인한 후, 전화로 짜장면을 시킨다면 예전보다 훨씬 수월하게 배달원이 나를 찾을 수 있을 것이다.Now is the age of smart phones, and many sensors such as GPS (Global Positioning System) sensors, acceleration sensors, and geomagnetic sensors are embedded in cellular phones, and native apps (native You can use a digital map in the form of an app (native application) or a web app (web application) that runs in an internet browser. Therefore, if you check your location using a map app (map application) that works with the GPS sensor and then order Jajangmyeon over the phone, the delivery person will be able to find you much more easily than before.
스마트폰에 내장된 GPS 센서를 이용하면 스마트폰의 위치에 해당하는 위도(latitude)와 경도(longitude) 및 고도(altitude, height)를 알 수 있다. 그런데 스마트폰이나 자동차 내비게이션 시스템(navigation system)에서 사용하는 위도는 초등학교에서 배우는 위도와 다르다. 교과서에서 가르치는 위도는 지구의 형상이 완벽한 구(sphere)라고 가정하고 위도와 경도를 설명하기 때문에, 우리의 상식 속에 존재하는 위도는 사실은 지심 위도(geocentric latitude)이다. 그런데 지도나 GPS 시스템에서 사용하는 위도는 측지 위도(geodetic latitude)이다.Using the GPS sensor built into the smartphone, latitude, longitude, and altitude corresponding to the location of the smartphone can be obtained. However, the latitude used in a smartphone or car navigation system is different from the latitude learned in elementary school. Since the latitude taught in textbooks describes latitude and longitude assuming that the earth's shape is a perfect sphere, the latitude that exists in our common sense is actually geocentric latitude. However, the latitude used in maps and GPS systems is called geodetic latitude.
측지 위도는 지구의 자전(rotation of the Earth on its axis)의 영향으로 지구의 형상이 편평한 회전타원체(rotational ellipsoid, ellipsoid of revolution, spheroid), 즉 편구면(oblate spheroid)에 가깝다는 사실을 반영한다. 쉽게 말하면 지구의 형상이 배구공을 손으로 눌러서 약간 납작해진 모양과 비슷하다는 뜻이다. 즉, 지구의 형상은 포도알처럼 둥글거나 참외와 같이 길쭉한 모양이 아니라 귤과 비슷하게 납작한 모양이다. 이 지구타원체(Earth ellipsoid)는 지도를 만들 때 그 기준타원체(reference ellipsoid)로 활용된다. 도 1은 측지 위도 φ와 지심 위도 ψ의 차이를 이해하기 위한 개념도이다비특1.Geodetic latitude reflects the fact that the Earth's shape approximates a rotational ellipsoid (ellipsoid of revolution, spheroid), or oblate spheroid, due to the rotation of the Earth on its axis. In simple terms, it means that the shape of the earth is similar to a slightly flattened shape by pressing a volleyball ball with your hand. In other words, the shape of the earth is not round like a grape or elongated like a melon, but flat like a tangerine. This Earth ellipsoid is used as a reference ellipsoid when making maps. 1 is a conceptual diagram for understanding the difference between geodetic latitude φ and geocentric latitude ψ .
지구를 모델링하기 위해서는 이 형상뿐만 아니라 실제 지구에 대한 회전타원체의 원점(origin)의 위치와 방향도 결정되어야 한다. 지구타원체의 중심(center) C는 지구의 질량 중심(center of mass)에 위치하며, 그 오차는 2cm 이내라고 한다. 지구의 자전축(rotation axis)(102)은 지구의 질량 중심을 지난다. 그리고 지구의 자전축(102)이 지구타원체(101)와 만나는 두 지점이 북극(NP, north pole)과 남극(SP, south pole)이다. 이 지구타원체는 편구면이므로, 이 회전타원체의 단축(semi-minor axis)이 지구의 자전축과 일치한다. In order to model the earth, not only this shape but also the location and orientation of the origin of the spheroid relative to the real earth must be determined. The center C of the Earth's ellipsoid is located at the center of mass of the Earth, and the error is said to be within 2 cm. The Earth's rotation axis 102 passes through the Earth's center of mass. And two points where the earth's axis of rotation 102 meets the earth ellipsoid 101 are the north pole (NP) and the south pole (SP). Since the Earth's ellipsoid is oblate, the semi-minor axis of this spheroid coincides with the Earth's axis of rotation.
지구상의 한 점 P의 좌표는 3차원 직각 좌표계(three-dimensional Cartesian coordinate, three-dimensional rectangular coordinate)에서 (X, Y, Z)로 나타낼 수 있다. 3차원 직각 좌표계는 ECEF(Earth-Centered, Earth-Fixed) 방식으로 설정된다. 3차원 직각 좌표계의 원점은 지구타원체의 중심(C)에 위치하며, Z-축은 회전타원체의 단축과 일치한다. 남극에서 북극으로 가는 방향이 Z-축의 양(+)의 방향이고, X-축과 Y-축은 적도면(Equtorial plane)에 포함된다. 사실은 지구의 자전축이 지표면과 만나는 두 지점이 북극과 남극이다. 이 북극과 남극은 나침반이 가리키는 자북극(magnetic northern pole, north magnetic pole)이나 자남극(magnetic southern pole)과 정확히 일치하지는 않는다. 즉, Z-축이 지구의 자전축이고, X-Y 평면이 적도면이다. 지구에 고정되었다(Earth-Fixed)는 말은 이 좌표계가 자전하는 지구와 같이 회전한다는 뜻이다.The coordinates of a point P on the Earth can be expressed as (X, Y, Z) in a three-dimensional Cartesian coordinate (three-dimensional rectangular coordinate). The 3D Cartesian coordinate system is set in the ECEF (Earth-Centered, Earth-Fixed) method. The origin of the three-dimensional rectangular coordinate system is located at the center (C) of the Earth's ellipsoid, and the Z-axis coincides with the minor axis of the spheroid. The direction from the South Pole to the North Pole is the positive (+) direction of the Z-axis, and the X-axis and Y-axis are included in the Equatorial plane. In fact, the two points where the earth's axis of rotation intersects with the earth's surface are the north and south poles. These north and south poles do not exactly coincide with the magnetic northern (north magnetic pole) or magnetic southern pole (which the compass points to). That is, the Z-axis is the Earth's axis of rotation, and the X-Y plane is the equatorial plane. Earth-Fixed means that this coordinate system rotates as the Earth rotates.
이 지구타원체에 최적의 구면좌표계(spherical coordinate system)를 적용한 것을 측지 데이텀(geodetic datum)이라고 한다. 지리 좌표계(geographic coordinate system) 또는 세계 측지 시스템(WGS: World Geodetic System)은 지도 작성(cartography), 측지학(geodesy) 및 위성 기반 내비게이션(satellite-based navigation)의 표준이다. 가장 최신의 WGS는 WGS 84, WGS 1984 또는 EPSG:4326이라고 부르는 시스템이며, GPS는 이 시스템을 사용한다.The application of the optimal spherical coordinate system to this earth spheroid is called a geodetic datum. The geographic coordinate system or World Geodetic System (WGS) is a standard for cartography, geodesy and satellite-based navigation. The most recent WGS is a system called WGS 84, WGS 1984 or EPSG:4326, and GPS uses this system.
북극과 남극을 포함하는 평면(plane)은 지구타원체의 중심(C)도 포함하며, 이 평면과 지구타원체의 교선(line of intersection)은 타원(ellipse)으로 주어진다. 그런데 그 타원의 중심이 지구타원체의 중심과 일치한다는 뜻에서 편의상 대원(great circle)이라고 부르기로 한다. 북극에서 남극에 이르는 교선, 즉 대원의 절반을 자오선(meridian) 또는 경선(lines of longitude)이라고 부른다. 그리고 그리니치 천문대(Royal Greenwich Observatory)를 지나는 자오선이 본초자오선( prime meridian)이고, 반대편에 있는 자오선이 반대 자오선(antimeridian)이다.The plane containing the North and South Poles also includes the center (C) of the Earth's ellipsoid, and the line of intersection between this plane and the Earth's ellipsoid is given as an ellipse. However, since the center of the ellipse coincides with the center of the earth's ellipsoid, it is called a great circle for convenience. The line of intersection from the North Pole to the South Pole, or half of the great circle, is called the meridian or lines of longitude. And the meridian passing through the Royal Greenwich Observatory is the prime meridian, and the meridian on the opposite side is the antimeridian.
지구상에서의 한 점 P의 좌표는 측지 위도 φ, 경도 λ 및 타원체고(ellipsoidal height) h로 표시할 수도 있다. 측지 위도 φ, 경도 λ 및 타원체고 h를 사용하는 좌표계를 측지 좌표계(geodetic coordinate system)라고 한다. 여기서 측지 위도는 3차원 직각 좌표계의 원점 C와 점 P를 잇는 선분(line segment)을 기준으로 측정하는 것이 아니다. 점 P에서 지구타원체(101)에 법선(normal) n을 내린다. 그 법선(n)이 지구타원체(101)와 만나는 점(103)을 타원체점(ellipsoidal point)이라고 지칭하겠다. 타원체점(103)에서 지구타원체(101)에 대한 접평면(tangent plane)(104)을 그린다면, 정의에 의하여 법선은 접평면(104)을 수직으로 지난다. 그 법선이 적도면(X-Y 평면)과 이루는 각도 φ가 측지 위도이다. 그리고 그 법선을 연장하여 Z-축과 만나는 점(105)에서 타원체점(103)까지의 거리가 묘유선의 곡률 반지름(radius of curvature in the prime vertical) RN이다비특2.The coordinates of a point P on the Earth can also be expressed by the geodetic latitude φ, the longitude λ, and the ellipsoidal height h. A coordinate system using geodetic latitude φ, longitude λ and height h is called a geodetic coordinate system. Here, geodetic latitude is not measured based on a line segment connecting origin C and point P in a three-dimensional rectangular coordinate system. At the point P, the normal n to the earth ellipsoid 101 is lowered. The point 103 where the normal line n intersects the earth ellipsoid 101 will be referred to as an ellipsoidal point. If a tangent plane 104 is drawn from the ellipsoid point 103 to the earth ellipsoid 101, then by definition the normal passes perpendicularly through the tangent plane 104. The angle φ that the normal makes with the equatorial plane (XY plane) is the geodetic latitude. And the distance from the point 105 where the normal line meets the Z-axis to the ellipsoid point 103 is the radius of curvature in the prime vertical R N.
지구타원체의 장축 반경(semi-major axis, radius of the semi-major axis)은 6,378,137m이다비특3. 지구타원체의 장축 반경, 즉 긴 반지름이 a이고, 단축 반경(semi-minor axis, radius of the semi-minor axis), 즉 짧은 반지름이 b라고 하면, 지구타원체의 이심률(eccentricity) e는 수학식 1과 같이 주어진다.The semi-major axis (radius of the semi-major axis) of the earth spheroid is 6,378,137 m. If the radius of the major axis of the earth spheroid, that is, the major radius is a, and the minor axis, radius of the semi-minor axis, that is, the radius of the semi-minor axis is b, the eccentricity e of the earth ellipsoid is Equation 1 is given as
Figure PCTKR2022007997-appb-img-000001
Figure PCTKR2022007997-appb-img-000001
그리고 묘유선의 곡률 반지름 RN은 수학식 2와 같이 주어진다.And the radius of curvature R N of the hairline is given by Equation 2.
Figure PCTKR2022007997-appb-img-000002
Figure PCTKR2022007997-appb-img-000002
즉, 묘유선의 곡률 반지름은 상수(constant)가 아니라 측지 위도 φ의 함수로 주어진다. 그리고 3차원 직각 좌표 X, Y, Z는 측지 위도 φ, 경도 λ, 타원체고 h의 함수로 수학식 3 내지 5와 같이 주어진다.That is, the radius of curvature of the catheter is given as a function of the geodetic latitude φ, not a constant. In addition, the three-dimensional rectangular coordinates X, Y, and Z are given as Equations 3 to 5 as functions of geodetic latitude φ, longitude λ, and ellipsoidal height h.
Figure PCTKR2022007997-appb-img-000003
Figure PCTKR2022007997-appb-img-000003
Figure PCTKR2022007997-appb-img-000004
Figure PCTKR2022007997-appb-img-000004
Figure PCTKR2022007997-appb-img-000005
Figure PCTKR2022007997-appb-img-000005
이 지구타원체와 적도면과의 교선이 적도(Equator)이며, 삼차원 직각 좌표계의 X-축은 지구 중심에서 본초자오선과 적도의 교점(intersection point)을 지나는 직선이다. The line of intersection between the Earth's ellipsoid and the plane of the equator is the equator, and the X-axis of the three-dimensional rectangular coordinate system is a straight line passing through the intersection point of the prime meridian and the equator at the center of the Earth.
지구상에서의 한 점 P의 경도는 그 점을 포함하는 자오면(meridian plane)이 X-Z 평면과 이루는 각도이며, 수학식 6과 같이 주어진다.The longitude of a point P on the Earth is the angle formed by the meridian plane containing the point with the X-Z plane, and is given by Equation 6.
Figure PCTKR2022007997-appb-img-000006
Figure PCTKR2022007997-appb-img-000006
한편 타원체점(103)에서 점 P까지의 거리가 타원체고(ellipsoidal height) h이다. 그리고 지구타원체의 중심 C에서 타원체점(103)에 이르는 선분이 X-Y 평면과 이루는 각도가 지심 위도 ψ이다. 지심 위도는 수학식 7과 같이 주어진다.Meanwhile, the distance from the ellipsoidal point 103 to the point P is the ellipsoidal height h. Also, the angle formed by the line segment from the center C of the earth ellipsoid to the ellipsoid point 103 with the X-Y plane is the geocentric latitude ψ. The geocentric latitude is given by Equation 7.
Figure PCTKR2022007997-appb-img-000007
Figure PCTKR2022007997-appb-img-000007
측지 위도의 공식은 상당히 복잡하며, 수학식 8과 같이 주어진다.The formula for geodetic latitude is quite complex and is given as Equation 8.
Figure PCTKR2022007997-appb-img-000008
Figure PCTKR2022007997-appb-img-000008
즉, 측지 위도를 구하는 공식에 측지 위도가 포함되어 있다. 따라서 단순히 계산기를 두드려서 계산할 수 없다. 우리가 무심코 위도라고 지칭할 때에는 정확하게는 측지 위도를 의미한다. 구글 지도(https://www.google.com/maps)나 네이버 지도(https://map.naver.com)와 같은 디지털 지도에서 표시되는 위도는 측지 위도이다.That is, the formula for obtaining geodetic latitude includes geodetic latitude. Therefore, it cannot be calculated simply by tapping a calculator. When we casually refer to latitude, we mean precisely geodetic latitude. The latitude displayed on digital maps such as Google Maps (https://www.google.com/maps) or Naver Maps (https://map.naver.com) is a geodetic latitude.
사실 현대에 왜 굳이 측지 위도를 사용해야 하는지는 납득하기 어렵다. 아마도 대항해시대(the age of discovery, the age of exploration)에 뱃사람들이 북두칠성(the Big Dipper)과 같은 별자리를 보고서 위도를 측정하고, 시계와 태양의 고도를 비교하여 경도를 측정했던 역사와 관련이 있을 것이다. 한편, 경도는 초등학교 교과서에서 배운 것과 개념이 같지만, 본초자오선이 그린위치 천문대를 정확하게 지나지 않는다는 점에서 미세한 차이가 있다. 어쨌든 이와 같은 수학식을 이용하여 측지 위도 φ, 경도 λ, 타원체고 h를 3차원 직각 좌표계의 좌표 (X, Y, Z)와 상호 변환하는 것이 가능하다.In fact, it is difficult to understand why geodetic latitude should be used in modern times. It is probably related to the history of sailors measuring latitude by looking at constellations such as the Big Dipper and measuring longitude by comparing the altitude of the sun with the clock in the age of discovery and exploration. will be. On the other hand, longitude is the same concept as what you learned in elementary school textbooks, but there is a subtle difference in that the prime meridian does not exactly pass through the Greenwich Observatory. In any case, it is possible to mutually transform geodetic latitude φ, longitude λ, and ellipsoidal height h with the coordinates (X, Y, Z) of a 3-dimensional rectangular coordinate system using the above equation.
이상에서 알 수 있는 바와 같이 지구상에서 정확한 3차원적인 위치를 특정하기 위해서는 (측지) 위도와 경도에 더하여 그 지점에서의 타원체고 h가 주어져야 한다. 그런데 스마트폰에서 주어지는 GPS 좌표는 측지 위도와 경도와 해발 고도(height above sea level)이다. 해발 고도는 지오이드(geoid)를 기준으로 측정한 높이이며, 지오이드는 평균 해수면의 높이를 육지까지 확장했을 때 얻어지는 가상의 폐곡면(closed surface)이다. 지오이드의 정확한 형상은 구나 회전타원체가 아니다. 회전타원체에 가깝지만 지하나 지상의 물질의 양과 밀도의 차이로 인하여 울퉁불퉁한 폐곡면으로 주어지며, 지오이드의 전체 형상을 수학적 함수로 기술하기는 사실상 불가능하다.As can be seen from the foregoing, in order to specify an accurate three-dimensional position on the earth, in addition to (geodetic) latitude and longitude, the height h of the ellipsoid at that point must be given. However, the GPS coordinates given by the smartphone are geodetic latitude, longitude, and height above sea level. Altitude above sea level is the height measured based on the geoid, and the geoid is a virtual closed surface obtained when the height of average sea level is extended to the land. The exact shape of the geoid is neither a sphere nor a spheroid. Although it is close to a spheroid, it is given as a rugged closed surface due to the difference in the amount and density of materials underground or on the ground, and it is virtually impossible to describe the entire shape of the geoid as a mathematical function.
스마트폰에서 GPS 센서의 값을 보면 (측지) 위도와 경도 및 해발 고도를 알 수 있지만, 그 지점에서의 지오이드의 높이를 알지 못하면 지구상에서의 정확한 3차원적인 위치를 알 수 없다. 그러나 측량, 토목 공사, 건축, 또는 군사 작전 등 정확한 지구의 형상이나 현재 위치, 또는 두 지점 간의 거리 등이 필요한 경우가 아니라면 실제로 지구타원체 상에서 어느 높이에 있는지는 굳이 알 필요가 없을 것이다.If you look at the value of the GPS sensor on your smartphone, you can know (geodetic) latitude, longitude, and altitude above sea level. However, unless you need the exact shape of the Earth, your current location, or the distance between two points, such as surveying, civil engineering, construction, or military operations, you probably don't need to know what height you are actually on the Earth's ellipsoid.
풍선에 붙어있는 개미처럼 지표면이나 해수면에 구속되어 살아가는 대부분의 사람의 위치를 특정하기 위하여 고도는 굳이 필요 없다. 일반인들이 일상생활에서 필요한 GPS의 용도는 내가 지도상에서 어느 위치에 있는지, 또 두 점 사이의 거리 또는 기준점으로부터의 대략적인 거리가 얼마인가를 아는 것일 것이다. 즉, GPS 신호로부터 지도상에서의 정확한 위치만 알 수 있다면, 지구의 형상이 회전타원체이고 우리가 위도라고 부르는 물리량이 정확하게는 측지 위도라는 사실을 몰라도 된다.Like ants attached to a balloon, altitude is not necessary to specify the location of most people who live confined to the surface or sea level. The use of GPS that ordinary people need in their daily lives would be to know where I am on a map and how much the distance between two points or the approximate distance from a reference point is. In other words, if only the exact location on the map can be known from the GPS signal, it is not necessary to know that the shape of the earth is a spheroid and that the physical quantity we call latitude is exactly geodetic latitude.
그러므로 지구상의 어디에 있더라도 위도와 경도만으로 그 위치를 특정할 수 있다. 즉, 지리산 깊은 산속에서 길을 잃었거나, 광활한 사하라 사막에서 조난을 당했거나, 심지어 배가 난파되어 이름 모를 무인도에 표류했다고 하더라도, 스마트폰이 동작한다면 GPS 센서로 (측지) 위도와 경도를 확인할 수 있다. 또, 그 위도와 경도를 구조대에게 알려준다면, 구조대가 실종자를 탐색하는 수고를 하지 않고 곧바로 구조 대상자를 찾아올 수 있을 것이다.Therefore, wherever you are on the earth, you can specify the location only with latitude and longitude. In other words, even if you get lost in the deep mountains of Jirisan Mountain, get stranded in the vast Sahara Desert, or even shipwrecked and drift on an unknown uninhabited island, you can check (geodetic) latitude and longitude with the GPS sensor if your smartphone works. . In addition, if the latitude and longitude are notified to the rescue team, the rescue team will be able to find the person to be rescued immediately without having to go through the trouble of searching for the missing person.
마라도 앞바다에서 짜장면을 주문하는 경우를 스마트폰의 시대에 다시 생각해보면, 짜장면 배달원이 큰소리로 외치며 주문자를 찾은 이유는 당연히 손님의 정확한 위치를 알 수 없었기 때문이다. 도 2는 네이버 지도에서 마라도 남단을 찾아본 것이다. 도 2에서 볼 수 있는 바와 같이 마라도는 상당히 작은 섬으로 지형지물이 적고, 상세한 주소나 번지로 장소를 특정하기가 쉽지 않다. 따라서 손님은 바다에서 정확한 주소가 없이 '장군바위 앞바다 30m 지점의 흰색 낚싯배'와 같이 다소 두리뭉실하게 자신의 위치를 알려줄 수 밖에 없었을 것이다.If we think back to the age of smartphones when ordering jajangmyeon off the coast of Marado, the reason why the jajangmyeon deliveryman shouted out loud to find the orderer was because the exact location of the customer was not known. 2 is a search for the southern tip of Marado on Naver Map. As can be seen in FIG. 2, Marado is a fairly small island with few landmarks, and it is not easy to specify a place with a detailed address or number. Therefore, without an accurate address at sea, the guest would have had no choice but to inform his location rather vaguely, such as 'a white fishing boat 30m off the coast of Janggunbawi Rock'.
도 3은 구글 지도에서 동일한 마라도 남단으로 이동한 결과이다. 여기서 장군바위 앞바다의 한 지점을 클릭(click)하면, 작은 팝업창이 나타난다. 도 3에는 동중국해(33.112810, 120.269394)라고 표시되어 있다. 즉, 이 지점은 (측지) 위도 33.112810°, 경도 120.269394°인 지점으로 동중국해(남해)에 속한다는 뜻이다.Figure 3 is the result of moving to the southern end of the same Marado on Google Maps. Here, if you click on a point in front of General Rock, a small pop-up window will appear. In Figure 3, it is indicated as the East China Sea (33.112810, 120.269394). In other words, this point is located at (geodetic) latitude 33.112810° and longitude 120.269394°, which means that it belongs to the East China Sea (South Sea).
또, 이 지도 화면의 주소창을 보면 "https://www.google.co.kr/maps/@33.113906,126.2683883,17.5z?hl=ko"라고 표시되어 있다. 이는 GET 방식으로 구글 지도에서 마라도 남단의 주소를 표시한 것이다. 구체적으로는 구글 코리아(https://www.google.co.kr)의 지도(/maps)에서 위도 33.113906°, 경도 126.2683883°인 지점을 검색(@)하여 줌 17.5(17.5z)로 표시하라는 뜻이며, "hl=ko"는 지명 등을 표시하는 언어(language)를 한국어(ko)로 표시하라는 의미이다. 만약 "hl=en"으로 바꾸면 동일한 지도가 영어로 표시된다.Also, if you look at the address bar of this map screen, "https://www.google.co.kr/maps/@33.113906,126.2683883,17.5z?hl=ko" is displayed. This is a GET method that displays the address of the southern tip of Marado on Google Maps. Specifically, it means to search (@) for a point with latitude 33.113906° and longitude 126.2683883° on the map (/maps) of Google Korea (https://www.google.co.kr) and display it at zoom 17.5 (17.5z). , and "hl=ko" means to display the language for displaying geographical names in Korean (ko). If you change it to "hl=en" the same map will be displayed in English.
도 4는 데스크톱 컴퓨터(desktop computer)에서 도 3의 주소창(address bar, location bar, URL bar)에 보이는 URL(Uniform Resource Locator), 즉 웹 주소(web address)를 구글의 웹 브라우저(web browser)인 크롬(Chrome)의 주소창에 붙여 넣고 엔터(enter)키를 눌러서 실행한 결과를 보여준다. 도 4에서 알 수 있는 바와 같이 도 3과 거의 동일한 화면이 나타난다. 약간의 차이를 살펴보면 줌(zoom)을 17.5로 입력하였는데, 구글 지도는 줌 레벨을 자연수(natural number)로 절사(truncate)하여 표시했다.FIG. 4 shows a URL (Uniform Resource Locator), that is, a web address shown in the address bar (address bar, location bar, URL bar) of FIG. 3 on a desktop computer, as a web browser of Google. Paste it into the address bar of Chrome and press Enter to see the result. As can be seen from FIG. 4, a screen almost identical to that of FIG. 3 appears. Looking at the slight difference, I entered the zoom as 17.5, but Google Maps truncates the zoom level to a natural number and displays it.
이와 같은 일이 가능한 이유는 웹(web)으로 실행되는 구글 지도(https://www.google.co.kr/maps)에서 위치 정보(geographic information)가 포함된 검색 문자열(search string)을 처리하는 기능이 구현되어 있기 때문이다. 완전한 위치 정보는 (측지) 위도, 경도, 고도로 구성되는 지리적인 좌표(geographic coordinates)로 주어져야 하지만, 일반도(general map)에서 특정 위치로 이동하기 위하여 고도를 알아야 할 필요가 없다. 그리고 도 3에 보이는 문자열은 GET 방식의 표준 문자열이 아니라, 구글의 자체 형식인 것으로 보인다. 처음부터 다른 앱(app, application)과 소통하기 위한 목적의 문자열이 아니므로, 자체적인 형식을 개발하여 사용한 것으로 보인다. 이를 표준적인 문자열로 바꾸면 "https://www.google.co.kr/maps?lat=33.113906&lon=126.2683883&zoom=17.5&hl=ko"와 같이 된다. 이는 구글 코리아의 지도(https://www.google.co.kr/maps)에서 위도는 33.113906°(lat=33.113906)이고, 경도는 126.2683883°(lon=126.2683883)인 지점으로 이동하여 줌을 17.5(zoom=17.5)로 지도를 표시하되, 표시 언어는 한국 어(hl=ko)으로 하라는 의미이다.This is possible because Google Maps (https://www.google.co.kr/maps) running on the web processes a search string containing geographic information. Because the function is implemented. Complete location information must be given in geographic coordinates consisting of (geodetic) latitude, longitude and altitude, but it is not necessary to know the altitude to get to a specific location on a general map. Also, the string shown in FIG. 3 seems to be Google's own format, not a standard string of the GET method. Since it is not a string for the purpose of communicating with other apps (apps, applications) from the beginning, it seems to have developed and used its own format. If this is converted into a standard string, it becomes "https://www.google.co.kr/maps?lat=33.113906&lon=126.2683883&zoom=17.5&hl=ko". This is done by moving to a point where the latitude is 33.113906° (lat=33.113906) and the longitude is 126.2683883° (lon=126.2683883) on Google Korea's map (https://www.google.co.kr/maps), and the zoom is 17.5 ( zoom=17.5), but the display language is Korean (hl=ko).
그런데 도 3의 주소창에 보이는 지리적인 좌표가 지도상의 정확히 어떤 지점에 대응되는지 파악하기 곤란하다. 지도 중심의 좌표일 것으로 추측되지만, 도 3에서 정확한 지도의 중심이 어디인지도 알기 어렵다.However, it is difficult to determine exactly which point on the map corresponds to the geographical coordinates shown in the address bar of FIG. 3 . It is presumed to be the coordinates of the center of the map, but it is difficult to know where the exact center of the map is in FIG. 3 .
한편, 안드로이드 스마트폰에서 구글 지도 앱의 검색창에 동일한 문자열을 넣고 검색을 해보면 'Google 지도에서 검색결과 없음'이라고 표시한다. 일단 스마트폰에서 구글 지도는 HTML5/CSS3/JavaScript로 구현된 웹앱(web app)이 아니라 안드로이드 폰(android phone)의 경우에는 Kotlin이라는 언어를, 아이폰(iPhone)의 경우에는 스위프트(Swift)라는 언어를 사용해서 개발된 네이티브 앱(native app)이다. 또, 구글 지도의 검색창은 인터넷 브라우저의 주소창이 아니다. 그리고 구글 지도 앱에서 웹페이지의 주소창에 보이는 문자열을 검색창에서 처리할 수 있는 기능이 구현되지 않았기 때문이다. 따라서 스마트폰의 구글 지도에서 '마라도 장군바위'를 검색할 수는 있지만, 데스크톱 컴퓨터에서 실행되는 구글 지도의 주소창에 보이는 문자열을 넣고 검색할 수는 없다.On the other hand, if you put the same string in the search box of the Google Maps app on your Android smartphone and search, 'No search results in Google Maps' is displayed. First of all, Google Maps on a smartphone is not a web app implemented in HTML5/CSS3/JavaScript, but uses a language called Kotlin for Android phones and Swift for iPhones. It is a native app developed using Also, the search bar of Google Maps is not the address bar of an Internet browser. And this is because the Google Maps app has not implemented a function that can process strings displayed in the address bar of a web page in the search bar. Therefore, you can search for 'Marado General's Rock' on Google Maps on your smartphone, but you cannot search by entering a string that appears in the address bar of Google Maps running on your desktop computer.
GPS 좌표는 항공기에서도, 미사일에서도, 자율주행 자동차에서도, 스마트폰에서도 사용된다. GPS 좌표가 사용되지 않는 분야를 찾아보기가 힘들다. 특히 탐색·구조 작전(search & rescue mission)에서도 GPS 좌표는 매우 중요하다.GPS coordinates are used in aircraft, missiles, self-driving cars, and smartphones. It's hard to find an area where GPS coordinates aren't used. In particular, GPS coordinates are very important in search & rescue missions.
예를 들어 사하라 사막 체험 여행(Sahara desert tour)에 나선 여행객이 일행과 떨어져 길을 잃고 조난을 당했는데, 다행히 위성 전화를 가지고 있어서 경찰에게 구조 요청을 하려고 한다고 가정하자. 그러면 일단 주소를 불러줄 수는 없을 것이다. 사막 한가운데에 길 안내 표지판이 없는 것은 물론이고, 주소 자체가 없을 것이기 때문이다.For example, let's assume that a traveler on a Sahara desert tour gets lost and gets in trouble, but luckily has a satellite phone and wants to call the police for rescue. Then you won't be able to call the address once. This is because there will be no road signs in the middle of the desert, and there will be no address itself.
사구(dune)는 바람의 영향으로 끊임없이 모양이 변한다. 그리고 사막 한가운데서 육안으로 보이는 범위에 특이한 지물이 있을 가능성이 얼마나 되겠는가? 따라서 경찰에게 지형지물을 묘사하여 자신의 위치를 알려주는 것도 불가능하다.A dune is constantly changing its shape under the influence of the wind. And how likely is it that there are unusual features in the middle of the desert, visible to the naked eye? Therefore, it is impossible to inform the police of one's location by describing the landmark.
가장 확실한 방법은 스마트폰에서 GPS 좌표를 확인하여 위도와 경도를 불러주는 것이다. 그런데 (측지) 위도와 경도를 사용해서 지리적인 위치를 특정하는 방법은 사실상 불편한 점이 많다. 가장 큰 불편은 미터(meter)나 피트(feet)와 같은 거리(distance)의 단위가 아니므로, 위도와 경도가 다른 두 지점이 거리상으로 얼마나 떨어져 있는지 짐작하기 어렵다는 점이다.The surest way is to check the GPS coordinates on your smartphone and call the latitude and longitude. However, the method of specifying a geographical location using (geodetic) latitude and longitude has many inconveniences in practice. The biggest inconvenience is that it is difficult to guess how far apart two points of latitude and longitude are in terms of distance, since they are not units of distance such as meters or feet.
예를 들어 전쟁 중에 아군의 자주포(self-propelled artillery)로 적군의 병참 기지(military supply base)를 포격하려고 하는데, 자주포의 경위도와 병참 기지의 경위도를 모두 알고 있다고 하자. 곡사포(high-angle gun)로 병참 기지를 명중시키기 위해서는 자주포에서 병참 기지까지의 정확한 방향과 거리를 알아야 한다. 그런데 두 개의 지리적인 좌표로부터 이를 계산하는 것은 컴퓨터가 없던 과거에는 매우 힘든 계산이었을 것이다.For example, suppose that you want to bombard an enemy military supply base with self-propelled artillery during war, and you know both the longitude of the self-propelled artillery and the longitude of the supply base. In order to hit a supply base with a high-angle gun, you need to know the exact direction and distance from the self-propelled gun to the supply base. However, calculating this from two geographic coordinates would have been a very difficult calculation in the past without computers.
또, 예를 들어 구조대에게 전화로 자신의 위치의 위도와 경도를 불러 주었는데 소수점 3째 자리의 숫자를 잘못 불러주었다고 가정하면, 그 잘못 불러준 경위도에 해당하는 위치와 조난자의 실제 위치가 얼마나 떨어져 있는지 계산해보기 전에는 알기 어렵다. 즉, 소수점 셋째 자리에서 6을 8로 잘못 불러 주었다고 가정할 때, 그 오차가 1m인지, 10m인지, 1km인지 즉각적으로 답변할 수 있는 사람은 거의 없을 것이다.Also, for example, if you call the latitude and longitude of your location over the phone to the rescue team, but assume that the third decimal place number is called incorrectly, how far is the location corresponding to the incorrectly called longitude and latitude from the actual location of the victim? It's hard to know until you do the math. In other words, assuming that 6 is incorrectly called 8 at the third decimal place, few people will be able to immediately answer whether the error is 1m, 10m, or 1km.
참고로 위도와 경도를 소수점 여덟째 자리까지 표시하면 지구상의 어디에 있더라도 위치상의 정밀도가 1mm 이하가 된다. 물론 이는 지구의 크기를 고려해서 그렇다는 의미이며, 달이나 화성에서는 다른 자릿수가 필요하다. 한편, 토목/건축용으로 쓰이는 GPS 측정기의 오차는 2~3cm 정도이며, 스마트폰에서 GPS 좌표의 오차는 5 ~ 15m 정도이다.For reference, if latitude and longitude are displayed to eight decimal places, the positional precision is less than 1 mm no matter where you are on the globe. Of course, this means taking into account the size of the Earth, you need other orders of magnitude for the Moon or Mars. On the other hand, the error of a GPS measuring device used for civil engineering/construction is about 2 to 3 cm, and the error of GPS coordinates in a smartphone is about 5 to 15 m.
도 5는 브리태니커 백과사전에서 제공하는 메르카토르 도법으로 지도를 작성하는 과정을 간단히 예시하는 개념도이다(출처: (https://www.britannica.com/science/Mercator-projection#/media/1/375638/231099). 메르카토르 도법은 원통형 투사 방식(cylindrical projection scheme)의 지도 작성법 중에서 가장 널리 알려진 도법이다. 메르카토르 도법에서는 먼저 구의 중심에서 적도에 접하는 원통에 투사를 한 뒤 그 원통을 전개해서 만들어지므로, 극지방은 표시할 수 없다비특4. 또 위도가 높아질수록 면적이 과장된다.5 is a conceptual diagram simply illustrating a process of creating a map using the Mercator projection provided by the Encyclopedia Britannica (Source: (https://www.britannica.com/science/Mercator-projection#/media/1/375638/ 231099).The Mercator projection is the most widely known projection among the cartography methods of the cylindrical projection scheme.In the Mercator projection, it is created by first projecting a cylinder in contact with the equator from the center of a sphere and then expanding the cylinder, so the polar regions are It cannot be displayed .
도 6은 메르카토르 도법으로 작성한 세계 지도의 예이다(저작자: Justin Kunimune, 출처: https://en.wikipedia.org/wiki/Mercator_projection#/media/File:Mercator_with_Tissot's_Indicatrices_of_Distortion.svg). 도 6에 보이는 원들은 티소 타원(Tissot's indicatrix of deformation)이라고 불리는 것인데, 위치에 따라서 면적이나 형상이 어떻게 왜곡되는가를 표시한 것이다. 만약 왜곡이 전혀 없다면 티소 타원들이 모두 동일한 크기의 원으로 표시되어야 한다. 도 6에서 보면 위도가 커질수록 티소 타원이 커지지만, 그래도 모두 원의 형상을 유지하고 있는 것을 알 수 있다. 즉, 메르카토르 도법은 작은 영역의 각도(angle)와 모양(shape)을 보존한다. 메르카토르 도법은 정각도법(conformal projection)의 대표적인 예이다.6 is an example of a world map created by the Mercator projection (author: Justin Kunimune, source: https://en.wikipedia.org/wiki/Mercator_projection#/media/File:Mercator_with_Tissot's_Indicatrices_of_Distortion.svg). The circles shown in FIG. 6 are called Tissot's indicatrix of deformation, and indicate how the area or shape is distorted depending on the position. If there is no distortion, the Tissot ellipses should all be represented as circles of the same size. 6, it can be seen that the Tissot ellipse increases as the latitude increases, but still maintains a circular shape. That is, the Mercator projection preserves the angle and shape of a small area. Mercator projection is a representative example of conformal projection.
메르카토르 도법의 가장 큰 장점은 방향을 보존한다는 것이며, 이는 특히 과거에 나침반을 이용하여 배로 항해하는데 도움이 되었다. 그런데 메르카토르 도법의 가장 큰 단점은 전술한 바와 같이 면적이 크게 왜곡된다는 것과 극지방을 표시할 수 없다는 것이다. 예를 들면 그린란드(Greenland)는 아프리카와 같은 크기로 나타나지만, 실제로는 아프리카의 면적이 그린란드의 면적의 14배이다.The greatest advantage of the Mercator projection is that it preserves direction, which was especially helpful in navigation by ship using a compass in the past. However, the biggest disadvantage of the Mercator projection is that the area is greatly distorted and the polar regions cannot be displayed as described above. For example, Greenland appears to be the same size as Africa, but in reality the area of Africa is 14 times the area of Greenland.
인터넷 지도가 활성화되면서 메르카토르 도법은 웹 메르카토르 도법(Web Mercator projection)으로 다시 부활하여 널리 쓰이고 있다비특5. 웹 메르카토르 도법은 Google이 2005년에 채택하여 현재는 대부분의 인터넷 지도 서비스 업체들이 채택하는 투사법이며, SRID(Spatial Reference Identifier)는 EPSG:900913 또는 EPSG:3857로 주어진다. EPSG:3857의 정식 명칭은 WGS 84/Pseudo_Mercator이다. 웹 메르카토르 도법은 구면 메르카토르(spherical Mercator)로 지칭되기도 한다. 웹 메르카토르 도법에서는 경도는 -180°에서 +180°까지 포함되지만, 위도는 ±85.051129°의 범위만 포함된다.As the internet map became active, the Mercator projection was revived as the Web Mercator projection and is widely used. Web Mercator projection was adopted by Google in 2005 and is currently a projection method adopted by most Internet map service providers, and SRID (Spatial Reference Identifier) is given as EPSG:900913 or EPSG:3857. The official name of EPSG:3857 is WGS 84/Pseudo_Mercator. Webb Mercator projection is also referred to as spherical Mercator. In the Webb Mercator projection, longitudes range from -180° to +180°, but latitudes range only from ±85.051129°.
도 7은 웹 메르카토르 도법을 이해하기 위한 개념도이다. 지구상의 한 점 P는 측지 위도 φ와 경도 λ와 타원체고 h를 가지고 있다. 점 P에서 지구타원체(701)에 내린 법선(n)이 지구타원체를 만나는 점이 타원체점(703)이다. 이 법선(n)은 타원체점에서 접평면(704)을 수직으로 지난다. 지구타원체의 적도면(X-Y 평면)에서의 반경은 R이다.7 is a conceptual diagram for understanding Web Mercator projection. A point P on the Earth has a geodetic latitude φ, a longitude λ, and an ellipsoidal height h. The ellipsoid point 703 is the point where the normal line (n) drawn from the point P to the earth ellipsoid 701 meets the earth ellipsoid. This normal (n) passes perpendicularly through the tangent plane 704 at the point of the ellipsoid. The radius of the Earth's ellipsoid in the equatorial plane (X-Y plane) is R.
이때 지구타원체(701)와 중심(C)을 공유하고, 반지름이 R인 구(706)를 가정한다. 그리고 지구타원체의 중심 C에서 법선 n에 평행한 직선(n')을 그린다. 이 직선(n')이 구(706)와 만나는 점(707)을 구점(sphere point)이라고 지칭하기로 한다. 그리고 이 구점에서 직선 n'을 따라 거리 h만큼 떨어진 점을 P'이라고 한다. 구면 메르카토르 도법은 점 P를 P'으로 대체하여 메르카토르 도법으로 그린 것이다. 즉, 지구타원체에서 측지 위도 φ와 타원체고 h를 갖는 점 P를 구면 지구(spherical Earth)에서 지심 위도가 φ이고, 고도가 h인 점 P'으로 간주하는 것이다.At this time, assume a sphere 706 that shares a center C with the earth ellipsoid 701 and has a radius R. Then draw a straight line (n') parallel to the normal n at the center C of the Earth's ellipsoid. A point 707 where the straight line n' intersects the sphere 706 will be referred to as a sphere point. P' is the point separated by a distance h from this sphere along the straight line n'. The spherical Mercator projection is drawn using the Mercator projection by replacing the point P with P'. That is, a point P having a geodetic latitude φ and an ellipsoidal height h on the earth ellipsoid is regarded as a point P' having a geocentric latitude φ and an altitude h on the spherical Earth.
이와 같이 지구타원체를 구면 지구로 치환한 후, 메르카토르 도법을 이용하여 지도 투사(map projection)를 수행하기 위하여 지구타원체(701)와 적도에서 접하는 원통(708)을 가정한다. 그러면 P"은 직선 n'이 원통면(708)을 만나는 점이다.In this way, after replacing the earth ellipsoid with the spherical earth, assume a cylinder 708 contacting the earth ellipsoid 701 at the equator in order to perform a map projection using the Mercator projection. Then P" is the point where the straight line n' intersects the cylindrical surface 708.
이와 같은 원리에 의하여 웹 메르카토르 도법의 투사 방식은 수학식 9 내지 10과 같이 쓸 수 있다.According to this principle, the projection method of the Webb Mercator projection can be written as Equations 9 to 10.
Figure PCTKR2022007997-appb-img-000009
Figure PCTKR2022007997-appb-img-000009
Figure PCTKR2022007997-appb-img-000010
Figure PCTKR2022007997-appb-img-000010
여기서 x는 웹 메르카토르 투사 방식에서의 동향거리(easting)이고, λ는 경도(longitude)이며, R은 적도에서 지구의 반경인데, 지구타원체의 장축 반경 a와 같다. 즉, R 값으로 6,378,137m를 사용할 수 있다. 한편, y는 웹 메르카토르 투사 방식에서의 북향거리(northing)이고, φ는 측지 위도이다. 웹 메르카트로 도법은 측지 위도와 경도를 사용하면서도 지구는 타원체가 아니라 구로 가정하고, 측지 위도를 지심 위도로 가정하여 이를 메르카토르 도법으로 옮긴 것이다.where x is the easting distance in the Webb Mercator projection, λ is the longitude, and R is the radius of the Earth at the equator, equal to the radius a of the major axis of the Earth's ellipsoid. That is, 6,378,137m can be used as the R value. On the other hand, y is the northing distance in the Web Mercator projection method, and φ is the geodetic latitude. The Web Mercator projection uses geodetic latitude and longitude, but assumes that the earth is a sphere, not an ellipsoid, and assumes geodesic latitude to be geocentric latitude, and transfers it to the Mercator projection.
지구타원체를 구로 근사하지 않고 정확하게 메르카토르 도법으로 지도를 작성할 수도 있다비특3. 그런데 종이에 인쇄된 지도를 작성할 때는 그렇게 할 수 있지만, 지구타원체 상에서의 수학적 연산이 복잡하여 디지털 세계 지도에 사용하기에는 부적당하다. 또 대한민국전도(complete map of Korea)와 같이 지구에서 국소적인 지역의 지도를 나타낼 때에는 오차가 mm 이하인 도법이 가능하지만, 다국적 기업인 구글이 전 세계를 상대로 서비스하는 구글 지도에서는 그런 혜택을 기대할 수 없다. 따라서 전 세계를 상대로 하는 지도 서비스에서 웹 메르카토르 도법은 거의 유일무이한 선택이라고 할 수 있다.It is also possible to create a map using the Mercator projection accurately without approximating the earth's ellipsoid as a sphere. However, although this can be done when creating maps printed on paper, it is inappropriate for use in digital world maps due to the complexity of mathematical operations on the Earth's ellipsoid. In addition, when displaying maps of local regions on the earth, such as the complete map of Korea, a projection with an error of less than mm is possible, but such benefits cannot be expected from Google Maps, which is serviced by Google, a multinational company, for the world. Therefore, the Web Mercator projection is almost a unique choice for map services covering the world.
모든 지도 투사(map projection)는 왜곡을 동반한다. 구면 메르카토르 도법에서는 2단계로 왜곡이 발생한다. 첫 번째로 측지 위도 φ를 지심 위도로 간주해서 왜곡이 발생하며, 두 번째는 구면(706)에서 원통(708)으로 투사를 하면서 왜곡이 발생한다. 도 7에서 짐작할 수 있는 바와 같이 웹 메르카토르 도법에서는 지도의 가로축과 세로축이 거리의 단위를 가지지만, 실제 거리와는 차이가 난다. 이런 이유로 미군(US army)은 군사용으로 웹 메르카토르 도법의 지도를 사용하는 것에 대해서 경고를 하고 있다.All map projections involve distortion. In the spherical Mercator projection, distortion occurs in two stages. First, distortion occurs by considering the geodetic latitude φ as geocentric latitude, and second, distortion occurs while projecting from the sphere 706 to the cylinder 708. As can be guessed from FIG. 7, in the Web Mercator projection, the horizontal axis and the vertical axis of the map have distance units, but they differ from actual distances. For this reason, the US Army is warning against using Web Mercator projection maps for military purposes.
지구의 적도 반지름은 약 6,378km이며, 극 반지름은 약 6,357km이다. 즉, 지구타원체는 육안으로는 구분하기 어려울 정도로 구에 가깝다. 지구타원체를 구로 간주하면, 메르카토르 투사 도법에 의한 거리의 왜곡(scale)은 수학식 10으로부터 수학식 11과 같이 주어진다.Earth's equatorial radius is about 6,378 km, and its polar radius is about 6,357 km. In other words, the Earth's ellipsoid is so close to a sphere that it is difficult to distinguish it with the naked eye. If the earth ellipsoid is regarded as a sphere, the scale of the distance by the Mercator projection projection is given as Equation 10 to Equation 11.
Figure PCTKR2022007997-appb-img-000011
Figure PCTKR2022007997-appb-img-000011
따라서 적도(φ = 0°)에서는 1m가 1m로 표시되지만, 위도 30°에서는 1m가 1.15m로 표시되고, 위도 45°에서는 1.41m로, 위도 60°에서는 2.00m로, 위도 85°에서는 11.47m로 표시된다.Thus, at the equator (φ = 0°), 1m is represented by 1m, but at 30° latitude, 1m is represented by 1.15m, at 45° latitude, it is 1.41m, at 60° latitude, it is 2.00m, and at latitude 85°, it is 11.47m. is indicated by
UTM 좌표계(Universal Transverse Mercator Coordinate System)는 전 지구상의 위치를 통일된 체계로 나타내기 위한 격자 좌표 체계의 하나로 미국 육군이 1947년에 개발하였다비특6. 도 8은 UTM 좌표계로 작성한 세계 지도의 예이다(저작자: Jan Krymmel, 출처: https://commons.wikimedia.org/wiki/File:Utm-zones.jpg). UTM 좌표계에서는 지구를 경도 6°간격의 세로띠로 나누어 횡축 메르카토르 도법(transverse Mercator projection)으로 그린 뒤, 각 세로 구역(띠)마다 설정된 원점에 대한 종·횡 좌표로 위치를 나타낸다. 각 세로띠에서 중앙 자오선(central meridian)과 적도의 교점이 원점이다. 지리 좌표계가 극지방으로 갈수록 직사각형이 크게 감소하는 반면 UTM 좌표계는 직사각형 모양을 유지하므로 거리, 면적, 방향 등을 나타내는데 매우 편리하다는 장점이 있다.The UTM coordinate system (Universal Transverse Mercator Coordinate System) was developed in 1947 by the US Army as one of the grid coordinate systems to represent locations on the entire globe as a unified system. 8 is an example of a world map created in the UTM coordinate system (author: Jan Krymmel, source: https://commons.wikimedia.org/wiki/File:Utm-zones.jpg). In the UTM coordinate system, the earth is divided into vertical bands at 6° longitude intervals, drawn in a transverse Mercator projection, and then the location is indicated by vertical and horizontal coordinates with respect to the origin set for each vertical zone (band). The point of intersection of the central meridian and the equator is the origin of each vertical band. While the geographic coordinate system greatly reduces the rectangular shape toward the polar regions, the UTM coordinate system maintains a rectangular shape, so it is very convenient to indicate distance, area, direction, etc.
UTM 좌표계는 곡률 반경이 불규칙하고 기복이 존재하는 지구의 형상을 기준 타원체로 모델화하여 나타내는데, 개발 당시 미주 지역에는 클라크 1866 타원체가, 그 이외 지역에는 국제 타원체가 사용되었다. UTM 좌표계에서 사용하는 UTM 투영법은 벨기에 출신의 지리학자이자 지도 제작자인 게라르두스 메르카토르(Gerardus Mercator)가 1570년에 개발한 메르카토르 도법을 횡축으로 그린 것이다. UTM 좌표계는 180°W(서경)부터 시작하여 경도 6° 간격으로 지표면을 총 60개의 세로띠로 나누며, 각각의 세로띠는 남북으로는 80°S(남위)부터 84°N(북위)까지에 이른다. 각 세로띠는 (180°W-174°W) 구간에서부터 시작하여 (174°E-180°E) 구간에 이르기까지 동쪽으로 1부터 60까지의 번호가 매겨진다.The UTM coordinate system models the shape of the earth with irregular curvature and ups and downs as a reference ellipsoid. At the time of development, the Clark 1866 ellipsoid was used in the Americas and the International ellipsoid was used in other regions. The UTM projection used in the UTM coordinate system is a transverse drawing of the Mercator projection developed in 1570 by Gerardus Mercator, a Belgian geographer and cartographer. The UTM coordinate system divides the Earth's surface into a total of 60 vertical bands at 6° longitude intervals, starting at 180°W (west longitude), each extending from 80°S (south latitude) to 84°N (north latitude) from north to south. Each vertical strip is numbered 1 through 60, starting from section (180°W-174°W) and extending eastwards to section (174°E-180°E).
도 9는 UTM zone을 예시하는 개념도로서(저작자: Javiersanp, 출처: https://commons.wikimedia.org/wiki/File:Utm-latlon_grid_en.svg), Zone 28의 북반구를 보여준다. 이와 같은 60개의 세로띠에 대하여 남북 방향으로 왜곡이 상대적으로 적은 횡축 메르카토르 도법으로 지도에 옮긴다. 각 구역의 중앙 자오선에서의 축척 계수는 0.9996이며, 구역의 경계에서는 약 1.0010 정도이다. 원점(즉, 중앙 자오선과 적도의 교점)에서 동서로 180km 위치에서 축척 계수가 1이 되어, 그 이내에서는 축척 계수가 1보다 작고, 180km를 벗어나는 지역에서는 축척 계수가 1보다 크게 된다.9 is a conceptual diagram illustrating a UTM zone (Author: Javiersanp, Source: https://commons.wikimedia.org/wiki/File:Utm-latlon_grid_en.svg), showing the northern hemisphere of Zone 28. For these 60 vertical bands, they are transferred to the map by the transverse Mercator projection with relatively little distortion in the north-south direction. The scale factor at the central meridian of each zone is 0.9996, and is about 1.0010 at the boundary of the zone. The scale factor becomes 1 at a location 180 km east and west of the origin (ie, the intersection of the central meridian and the equator), the scale factor is less than 1 within that range, and the scale factor is greater than 1 in the area beyond 180 km.
각각의 세로띠(UTM zone)는 다시 20개의 위도 밴드(latitude bands)로 나누는데, 이는 UTM 체계가 아니라 군사용 격자 참조 시스템(MGRS: Military Grid Reference System)의 체계에 속한다. 각 위도 밴드는 위도 8° 간격이다. 단, 가장 북쪽의 위도 밴드(72°N-84°N)는 12°로 되어 있다. 최남단인 (80°S-72°S) 밴드(band)에서부터 최북단인 (72°N-84°N) 밴드까지 'C'부터 'X'까지의 알파벳 기호를 매겨 구분하는데, 혼동을 막기 위해 'I'와 'O'는 제외한다. I는 숫자 1과 그리고 'O'은 숫자 0과 혼동될 수 있기 때문이다. 따라서 북반구에서 적도와 접한 위도 밴드(0°N-8°N)의 기호는 'N'이 된다. 각각의 세로띠, 즉 UTM zone 안에서 어느 한 위도 밴드는 숫자와 알파벳으로 된 기호를 함께 써서 나타낸다. 예를 들어, 대한민국은 UTM 좌표계에서 51S, 51T, 52S, 52T 구역에 속해 있다.Each UTM zone is further divided into 20 latitude bands, which belong to the Military Grid Reference System (MGRS) system rather than the UTM system. Each latitude band is 8° latitude apart. However, the northernmost latitude band (72°N-84°N) is at 12°. From the southernmost (80°S-72°S) band to the northernmost (72°N-84°N) band, alphabetic symbols from 'C' to 'X' are assigned. I' and 'O' are excluded. This is because I can be confused with the number 1 and 'O' with the number 0. Therefore, the symbol for the latitude band (0°N-8°N) bordering the equator in the northern hemisphere is 'N'. Each vertical band, i.e., a band of latitude within a UTM zone, is indicated by a combination of numbers and alphabetic symbols. For example, South Korea belongs to zones 51S, 51T, 52S, and 52T in the UTM coordinate system.
전술한 바와 같이 UTM 좌표계는 군사용으로 사용되는 직교 좌표계로서 UTM 좌표계에서의 북향거리(northing)와 동향거리(easting)는 지표면 상에서의 거리에 잘 대응하며, 남북 방향이나 동서 방향이 아닌 사선(oblique line) 방향에 있는 지점의 거리도 삼각법으로 쉽게 계산할 수 있는 장점이 있다. 그런데 GPS 신호로부터 얻은 측지 위도와 경도를 UTM 좌표계에서의 북향거리 및 동향거리와 상호 변환하는 과정이 너무나 복잡하다는 단점이 있다. 따라서 컴퓨터나 앱을 사용하여 UTM 좌표계를 구할 수는 있지만, 계산기나 수기(handwriting)로 계산하는 것은 사실상 불가능하다.As described above, the UTM coordinate system is an orthogonal coordinate system used for military purposes. ) has the advantage that the distance of a point in the direction can be easily calculated by trigonometry. However, there is a disadvantage in that the process of interconverting the geodetic latitude and longitude obtained from the GPS signal with the northward and eastward distances in the UTM coordinate system is too complicated. Therefore, although it is possible to obtain the UTM coordinate system using a computer or app, it is practically impossible to calculate it with a calculator or handwriting.
우리나라에서도 조난당한 등산객이 자신의 위치를 전화로 용이하게 신고할 수 있도록 '국가지점번호'라는 것을 사용하고 있다비특7. 도 10은 대청호 주변의 한 국가지점번호 안내판 사진이다. 위키백과는 국가지점번호를 다음과 같이 해설하고 있다.In Korea, a 'National Branch Number' is used so that a hiker in distress can easily report his or her location by phone. 10 is a photograph of a national branch number information board around Daecheong Lake. Wikipedia explains the country branch number as follows.
대한민국의 행정법 중 하나인 《도로명주소법》 제2조 <정의> 9항에서의 국가지점번호란 국토 및 이와 인접한 해양을 격자형으로 일정하게 구획한 지점마다 부여한 번호(문자와 아라비아 숫자를 포함한다)를 말한다.The national branch number in Article 2 <Definition> Paragraph 9 of the Road Name and Address Act, one of the administrative laws of the Republic of Korea, is a number assigned to each point that divides the national land and the adjacent sea in a grid pattern (including letters and Arabic numerals). ) says
이러한 국가지점번호는 긴급구조활동 등에서 위치의 표시로 활용한다.These national branch numbers are used as a location indicator in emergency rescue activities.
국가지점번호체계National branch number system
한글 문자 2개와 아라비아 숫자 8개를 조합하여 나타내며, 전국을 하나의 좌표체계로 표현한다.It is represented by combining two Korean characters and eight Arabic numerals, and the whole country is expressed in one coordinate system.
전국을 100km × 100km 격자로 나눈 뒤, UTM-K원점에서 남쪽 700km, 서쪽 300km 지점을 기준점으로 하여 그 기준점에서부터 각 격자마다 서에서 동으로, 남에서 북으로 각각 가나다순으로 한글 문자를 부여한다. 그 다음, 그 한 격자의 가로와 세로를, 길이가 각각 10미터 단위로 10,000개로 나눈 지점을 기본단위로 하여 숫자를 부여한다. 이때 부여되는 숫자는 4자리로 표시하며, 이 경우 각 정수가 4자리에 미달하는 경우에는 4자리가 될 때까지 그 앞에 "0"을 삽입한다. 지점번호 중 앞에 표시된 4자리 숫자가 동쪽 거리를 나타내는 숫자이고 뒤의 4자리 숫자가 북쪽 거리를 나타낸다. 예를 들면, "라아 8485 1333"(설악산 대청봉)는 기준점에서 동쪽으로 384.85km, 북쪽으로 713.33km 지점을 뜻한다.After dividing the country into grids of 100 km × 100 km, the points 700 km south and 300 km west of the UTM-K origin are used as reference points, and Korean characters are given in alphabetical order from west to east and south to north, respectively, from the reference point to each grid. Then, a number is assigned based on the point where the length and width of the grid are divided into 10,000 units of 10 meters each. At this time, the given number is displayed in 4 digits, and in this case, if each integer is less than 4 digits, "0" is inserted in front of it until it reaches 4 digits. The first 4 digits of the branch number indicate the distance to the east, and the 4 digits to the back indicate the distance to the north. For example, "Raa 8485 1333" (Seoraksan Mountain Daecheongbong) means the point 384.85 km east and 713.33 km north of the reference point.
위키피디아의 설명과 같이 이 국가지점번호는 조난자가 이 안내판을 보고 119에 자신의 위치를 불러주라는 의도로 개발된 것이다. 즉, 119에 신고하면서 자신의 위치를 "다바 9924 1825"로 신고하면, 구조대는 실종자의 위치를 가로: 세로 10m의 정사각형의 범위로 특정할 수 있다. 위도와 경도를 이용하여 얼마든지 정확하게 위치를 특정할 수 있음에도 불구하고, 이런 국가지점번호 체계를 사용하는 것은 전술한 바와 같이 지리적인 좌표가 사람들이 기억하거나 구술하기에는 불편한 점이 있기 때문이다.As explained in Wikipedia, this national branch number was developed with the intention of asking the survivor to call 119 for their location after seeing this information board. That is, if you report your location as “Daba 9924 1825” while calling 119, the rescue team can specify the location of the missing person in the range of a square of 10 m in length and width. Although a location can be accurately specified using latitude and longitude, the use of such a national point number system is because, as described above, geographical coordinates are inconvenient for people to remember or dictate.
그런데 이 국가지점번호 체계도 불편한 점이 있다. 우선, 이 국가지점번호는 가로: 세로 10m의 오차 범위로 위치를 특정한다. 10m의 오차 범위는 조난자 구조에 사용하기에는 충분하지만, 다른 용도로 사용하기에는 불충분하다. 예를 들어 야구경기장에서 관람객이 전화로 치맥(치킨과 맥주)을 주문하는 경우를 생각해 보면, 가로세로 10m의 정사각형 안에는 약 100명 정도의 사람들이 있을 것이다. 따라서 국가지점번호를 불러 주었다고 하더라도, 배달원이 막상 관중석에 가서는 "치맥 시키신 분!"을 외치지 않고는 손님이 어느 사람인지 알 수 없을 것이다. 또, 대청호에서 조난당한 사람이 근처에서 국가지점번호 표지판을 발견할 수 없다면, 국가지점번호 체계의 도움을 받을 수 없다.However, this national branch number system also has inconvenient points. First of all, this national branch number specifies a location with an error range of 10m horizontally and vertically. A margin of error of 10 m is sufficient for use in the rescue of victims, but insufficient for other uses. For example, if you think about a case where a spectator orders chicken and beer (chicken and beer) over the phone at a baseball stadium, there will be about 100 people in a square of 10m x 10m. Therefore, even if the country branch number is called, the delivery person will not know who the customer is unless he shouts "The person who ordered chicken and beer!" In addition, if a person in distress on Daecheong Lake cannot find a national branch number sign nearby, he or she cannot receive help from the national branch number system.
영국의 한 기업(What3words Limited)의 앱(what3words)은 세 단어를 이용하여 지구상의 위치를 특정한다. 도 11은 이 앱을 소개하는 페이지(https://what3words.com/products/what3words-app)의 일부를 캡쳐한 것으로 위도/경도의 쌍을 3개의 단어로 치환한다는 것을 알 수 있다.An app (what3words) from a British company (What3words Limited) uses three words to specify a location on the globe. 11 captures a part of the page introducing this app (https://what3words.com/products/what3words-app), and it can be seen that latitude/longitude pairs are replaced with three words.
[특 1]에는 이 기술의 원리가 다음과 같은 요지로 설명되어 있다. 위치 결정 장치(location determining means)로부터 한 장소의 지리적인 좌표(geographical coordinates)를 받은 후, 이를 하나의 큰 정수(integer) n으로 변환하고, 이를 다시 3개의 정수 (i, j, k)로 분해한다. 그리고 분해된 3개의 정수를 3개의 단어로 치환하여 위치 식별자(location identifier)로 사용한다.In [Special 1], the principle of this technology is explained in the following points. After receiving the geographical coordinates of a place from the location determining means, transform them into one big integer n, which is then decomposed into three integers (i, j, k). do. Then, the decomposed three integers are replaced with three words and used as location identifiers.
지리적인 좌표는 위도와 경도의 쌍을 말하는데, 위도와 경도를 소수점 6째 자리까지 사용한다. 이는 지구상에서 가로: 세로 3m의 오차 범위로 위치를 특정할 수 있는 정밀도이다. 스마트폰의 GPS 센서는 대략 이 정도의 정확도를 가지고 있다.Geographical coordinates are pairs of latitude and longitude, using latitude and longitude to six decimal places. This is the precision that can specify a position on the earth with an error range of 3m horizontally and vertically. A smartphone's GPS sensor has about this accuracy.
위도와 경도의 쌍을 정수 n으로 변환하고, 이를 다시 3개의 정수 (i, j, k)로 분해하며, 이를 또다시 3개의 단어로 치환하는 작업은 조견표(lookup table)를 사용하여 서버(server)에서 실행된다.The task of converting a pair of latitude and longitude into an integer n, decomposing it into three integers (i, j, k), and substituting it into three words again is a server using a lookup table. ) runs on
사용자는 이 3 단어를 해당 장소의 위치를 기억하거나 기록하기 위하여 사용할 수 있고, 다른 사람에게 자신의 위치나 제3의 목적지를 불러주기 위하여 사용할 수도 있으며, 문자 메시지(text message)로 보낼 수도 있다. 수신자는 이 3 단어로부터 역으로 지리적인 좌표를 구할 수 있고, 해당 위치를 지도에 표시할 수도 있다.The user can use these three words to remember or record the location of the place, use them to call their location or a third destination to others, or send them as text messages. The receiver can obtain geographical coordinates from these three words and display the corresponding location on a map.
도 12는 출원인의 사무실에서 가장 가까운 전철역 출구를 이 앱에서 찾아본 것이다. 도 12에서 볼 수 있는 바와 같이 대전 지하철 1호선 중앙로역 9번 출구 근처의 3m × 3m의 정사각형 영역은 'suspect', 'civil', 'bikers'라는 세 단어로 특정된다. 하단의 공유(share) 버튼을 누르면 문자 메시지로 타인에게 전송할 수 있는데, 문자 메시지에는 https://w3w.co/suspect.civil.bikers라는 인터넷 링크(internet link)가 포함되어 있다. 수신된 문자 메시지를 클릭하면 지도가 실행되어 도 13과 같은 화면이 얻어진다.12 is the closest subway station exit to the applicant's office found in this app. As can be seen in FIG. 12, a 3m × 3m square area near Exit 9 of Jungangno Station on Daejeon Subway Line 1 is specified by three words: 'suspect', 'civil', and 'bikers'. If you press the share button at the bottom, you can send it to others by text message, and the text message includes an internet link called https://w3w.co/suspect.civil.bikers. When the received text message is clicked, the map is executed and the screen shown in FIG. 13 is obtained.
[특 2]에는 휴대폰의 GPS 센서와 인터넷에 연결된 전용 서버(Buddy Watch sever)를 이용하여 주시 목록(watch list)에 등록된 둘 이상의 사용자(Buddy)들이 양방향으로 위치를 공유하는 기술이 개시되어 있다. 주시 목록에 사용자를 등록하는 과정은 영구적으로 또는 요청(ask)/수락(accept) 기반으로 일시적으로 이루어질 수 있으며, 사용자는 임의로 자신의 위치가 공유되는 것을 중지할 수 있다.[Special 2] discloses a technology in which two or more users (Buddy) registered in a watch list share their location in both directions using a GPS sensor of a mobile phone and a dedicated server (Buddy Watch server) connected to the Internet. . The process of registering a user to the watchlist can be permanent or temporary on an ask/accept basis, and the user can arbitrarily stop sharing their location.
[특 3]에는 GPS 위치 확인 시스템(GPS positioning system)과 휴대폰 통신 네트워크(mobile communication network)를 이용하여 요청/수락 기반으로 다른 휴대폰의 위치를 지도상에서 확인할 수 있는 방법이 개시되어 있다.[Special 3] discloses a method of confirming the location of another mobile phone on a map based on a request/acceptance using a GPS positioning system and a mobile communication network.
[특 4]에는 송신인이 수신인에게 지도(map)가 포함된(embedded) 문자 메시지(text message)를 보내어 수신인이 송신인과 수신인의 위치를 동시에 확인할 수 있으며, 지도 상에서 두 사람의 위치가 실시간으로 갱신되는 기술이 개시되어 있다.In [Special 4], the sender sends a text message embedded with a map to the recipient so that the recipient can check the location of the sender and the recipient at the same time, and the location of the two people on the map is displayed in real time. A technique to be updated is disclosed.
[특 5]에는 송신인(sender)의 스마트폰의 지리적인 위치(geographic location)를 이메일(email)이나 문자 메시지 등 택일적으로 선택 가능한 두 개 이상의 수단을 이용하여 부호화된 데이터(encoded data)로 수신인(receiver)에게 전송하여 송신인의 위치를 공유(location sharing)하는 방법이 개시되어 있다.In [Special 5], the geographical location of the sender's smartphone is converted into encoded data using two or more alternatively selectable means such as email or text message. A method of transmitting to a receiver and sharing the sender's location is disclosed.
[특 6]에는 수신인이 송신인으로부터 문자 메시지를 받아서 이를 처리(process)하여 지도상에 송신인의 위치를 표시하되, 문자 메시지는 송신인의 위치를 포함하는 긴 URL(longer URL)을 해시(hash) 처리한 짧은 URL(shorter URL)을 포함하는 방법이 개시되어 있다.In [Special 6], the recipient receives a text message from the sender and processes it to display the sender's location on a map, but the text message hash a longer URL including the sender's location A method of including a hash-processed short URL is disclosed.
[특 7]에는 송신인과 수신인이 일정한 시간 동안 지속적으로 위치를 공유하고, 지정한 시간이 경과하면 위치의 공유를 종료하는 기술이 개시되어 있다.[Special 7] discloses a technique in which a sender and a receiver continuously share a location for a predetermined time and end sharing the location when the specified time elapses.
[특 8]에는 이동통신 단말기의 용이한 버튼조작만으로 비상연락처로 비상정보를 송출하여 비상상황을 통보할 수 있도록 함과 아울러, 이동통신 단말기의 무음/무광 모드 전환에 의해 보안이 유지될 수 있도록 하는 이동통신망을 이용한 비상호출 처리장치가 개시되어 있다.In [Special 8], emergency information can be sent to an emergency contact with just a simple button operation of the mobile communication terminal to notify an emergency situation, and security can be maintained by switching the mobile communication terminal to silent/matte mode. Disclosed is an emergency call processing device using a mobile communication network for
[특 9]에는 지표면을 3차원 표면(three-dimensional curved surface)으로 근사하고, 3차원 표면을 다수의 셀(cell)로 분할한 뒤, 각각의 셀에 대하여 3차원 곡선 좌표계 시스템(three-dimensional curvilinear coordinate system)을 적용하여 지구상의 3차원적인 위치를 특정하는 방법이 개시되어 있다.[Special 9] approximates the ground surface to a three-dimensional curved surface, divides the three-dimensional surface into a number of cells, and then uses a three-dimensional curved coordinate system for each cell. A method of specifying a three-dimensional position on the earth by applying a curvilinear coordinate system is disclosed.
[특 10]에는 지리적인 좌표와 함께 전방위 영상(panoramic image)에 마커(marker)와 텍스트(text)를 삽입하여 사전 설정된 공유 링크(pre-set sharing link)로 전송할 수 있는 기술이 개시되어 있다.[Special 10] discloses a technology capable of inserting a marker and text into a panoramic image along with geographic coordinates and transmitting the same through a pre-set sharing link.
한편, 급속한 도시화로 인하여 전 세계의 인구 대부분이 도시에 거주하고 있으며, 또한 많은 건물이 2층 이상의 다층 건물이다. 따라서 특정 건물의 온전한 정보를 온라인 지도상에 표시하고 싶다면 사용자가 특정 층을 선택하면 그 층의 구조와 정보를 보여주는 실내 지도(indoor map)가 필수적이다. 실내 지도는 기본적으로 건물의 층별 평면도(floorplan)에 선택적으로 추가적인 정보를 표시한 것을 말한다. 실내 지도는 독립적으로 사용될 수도 있지만, 실외 지도와 연동하면 그 유용성이 크게 증가한다.On the other hand, due to rapid urbanization, most of the world's population lives in cities, and many buildings are multi-story buildings with two or more floors. Therefore, if you want to display complete information of a specific building on an online map, an indoor map that shows the structure and information of a specific floor when the user selects it is essential. An indoor map is basically an optional display of additional information on the floorplan of a building. Indoor maps can be used independently, but their usefulness increases significantly when linked with outdoor maps.
구글은 2005년 2월에 웹으로 실행되는 디지털 지도를 서비스하기 시작하였으며, 실내 지도 서비스는 2011년 3월에 시작되었다비특8. 크롬(Chrome)에서 '구글 실내 지도'를 검색하면 구글의 실내 지도 서비스를 소개하는 페이지(https://www.google.com/intl/ko/maps/about/partners/indoormaps)를 찾을 수 있으며, 실내 지도의 사례로 미국 뉴욕의 매디슨 스퀘어 가든(Madison Square Garden)을 보여주고 있다. 여기서 'Google 지도에서 보기'라고 표시된 링크를 클릭하면 도 14와 같은 화면이 보여진다(출처: https://www.google.com/maps/place/%EB%A7%A4%EB%94%94%EC%8A%A8+%EC%8A%A4%ED%80%98%EC%96%B4+%EA%B0%80%EB%93%A0/@40.7505029,-73.9936424,19z/data=!3m1!5s0x89c259ae1546fb27:0x93ba42deb43c8368!4m12!1m6!3m5!1s0x89c25a21fb011c85:0x33df10e49762f8e4!2z66ek65SU7IqoIOyKpO2AmOyWtCDqsIDrk6A!8m2!3d40.7505045!4d-73.9934387!3m4!1s0x89c25a21fb011c85:0x33df10e49762f8e4!8m2!3d40.7505045!4d-73.9934387).Google started providing digital map service running on the web in February 2005, and indoor map service started in March 2011 . If you search for 'Google Indoor Maps' in Chrome, you can find a page introducing Google's indoor map service (https://www.google.com/intl/en/maps/about/partners/indoormaps). An example of an indoor map is showing Madison Square Garden in New York, USA. Here, if you click the link marked 'View on Google Maps', the screen shown in Figure 14 is displayed (Source: https://www.google.com/maps/place/%EB%A7%A4%EB%94%94 %EC%8A%A8+%EC%8A%A4%ED%80%98%EC%96%B4+%EA%B0%80%EB%93%A0/@40.7505029,-73.9936424,19z/data=!3m1! 5s0x89c259ae1546fb27:0x93ba42deb43c8368!4m12!1m6!3m5!1s0x89c25a21fb011c85:0x33df10e49762f8e4!2z66ek65SU7IqoIOyKpO2AmOyWtCDqsIDrk6A!8m2!3d40.7505045!4d-73.9934387!3m4!1s0x89c25a21fb011c85:0x33df10e49762f8e4!8m2!3d40.7505045!4d-73.9934387).
도 14에서 보여지는 바와 같이 실외 지도(outdoor map) 상의 올바른 위치에 실내 지도가 중첩되어 표시되고 있으며, 소개 화면에는 6K 층이 보여지고 있다. 또 화면 왼쪽에는 매디슨 스퀘어 가든의 미니 홈페이지가 보여지고 있으며, 오른쪽에는 다른 층을 선택할 수 있는 메뉴가 있다.As shown in FIG. 14, an indoor map is overlapped and displayed at the correct position on an outdoor map, and a 6K floor is shown on the introduction screen. In addition, the mini home page of Madison Square Garden is shown on the left side of the screen, and there is a menu to select other floors on the right side.
도 15에서는 지도 화면을 확대하여 매디슨 스퀘어 가든의 동편을 보여주고 있으며, 도 16에서는 층을 지하 2층(-2)으로 변경한 것이다. 이처럼 다른 층을 선택하면 해당 층의 평면도(floorplan)로 교체되어 표시된다.In FIG. 15, the map screen is enlarged to show the east side of Madison Square Garden, and in FIG. 16, the floor is changed to the second basement floor (-2). If you select a different floor like this, the floorplan of that floor is replaced and displayed.
[특 11]에는 네트워크 서버(network server)가 사용자 기기(client device)에게 실내 지도 데이터(indoor map features)를 제공하는 기술이 개시되어 있다. 사용자가 특정한 지리적인 위치와 줌 레벨에 대한 실외 지도 데이터를 요청하면 네트워크 서버는 실외 지도 데이터 중에 다층 건물(multi-floor building)이 있는지 확인한 후, 다층 건물에 대한 기본층(default floor)의 실내 지도와 실내 지도 지시기(indoor map indicator)를 사용자 기기에 표시하며, 사용자가 실내 지도 지시기를 조작함에 따라서 실내 지도가 선택적으로 표시된다.[Special 11] discloses a technique in which a network server provides indoor map features to a client device. When a user requests outdoor map data for a specific geographic location and zoom level, the network server checks whether there is a multi-floor building among the outdoor map data, and then maps the indoor map of the default floor for the multi-floor building. and an indoor map indicator are displayed on the user device, and the indoor map is selectively displayed as the user manipulates the indoor map indicator.
[특 12] 내지 [특 13]에는 상호 작용이 가능한 디지털 지도에서 다층 건물의 한 층을 선택하는 기술이 개시되어 있다. 디지털 지도에는 다층 건물의 외형(external representation)이 표시되고, 사용자가 이 외형의 한 점을 선택(select)하면, 그 건물의 3D 모형이 나타나며, 그 건물의 층별 평면도가 부분적으로 중첩된 상태로 표시된다. 사용자가 이 모형을 수직 방향으로 쓸어내면(swipe), 선택된 층의 평면도가 나머지 다른 층의 평면도와 구별되는 방식으로 활성화된다.[Special 12] to [Special 13] disclose a technology for selecting a floor of a multi-story building from an interactive digital map. The external representation of a multi-story building is displayed on the digital map, and when the user selects a point on this external representation, a 3D model of the building is displayed, with the floor plan of the building partially overlapped. do. When the user swipes the model vertically, the floor plan of the selected floor is activated in a way that distinguishes it from the floor plans of the other floors.
[특 14]에는 GPS 위치정보를 찾을 수 없는 경우에도 실내 위치 정보를 제공할 수 있으며, 개방형 API를 통해 위치 정보 및 지도정보 기반의 서비스를 제공할 수 있는 기술이 개시되어 있다. 이를 위하여 건물의 실내 지도 및 실내에 설치된 무선 AP(Access Point)의 위치와 식별정보 및 신호 세기를 기초로 실내 지도상에서의 위치를 추정한다.[Special 14] discloses a technology capable of providing indoor location information even when GPS location information cannot be found, and providing location information and map information-based services through an open API. To this end, the location on the indoor map is estimated based on the location, identification information, and signal strength of the indoor map of the building and the wireless access point (AP) installed indoors.
[특 15] 내지 [특 16]에 개시된 종래 발명에는 지구상에서 실내·외의 위치를 특정하는 새로운 좌표계가 개시되어 있다. 이 좌표계의 구조는 도 7에 예시된 것과 유사한 점이 있다. 즉, 지구상에서 측지 위도 φ와 경도 λ를 가지는 한 점 P를 지심 위도가 φ이고 경도가 λ인 점이라고 가정하는 것이다. 그리고 이 좌표계에서 지리적인 위치는 측지 위도와 경도의 쌍 (φ, λ) 대신에 북향거리(northing) N과 동향거리(easting) E의 쌍 (N, E)을 사용하여 특정하며, 원통형 투사(cylindrical projection)는 적용하지 않는다. 이 좌표계는 지도를 작성하기 위한 좌표계가 아니라, 지구상의 어디에서나 동일한 오차 범위로 위치를 특정하기 위한 좌표계이다.In the conventional invention disclosed in [Special 15] to [Special 16], a new coordinate system for specifying an indoor/outdoor position on the earth is disclosed. The structure of this coordinate system is similar to that illustrated in FIG. 7 . In other words, it is assumed that a point P on the earth with geodetic latitude φ and longitude λ is a point with geocentric latitude φ and longitude λ. And in this coordinate system, the geographic location is specified using a pair (N, E) of northing distance N and easting distance E instead of a pair of geodetic latitude and longitude (φ, λ), and a cylindrical projection ( cylindrical projection) is not applied. This coordinate system is not a coordinate system for creating a map, but a coordinate system for specifying a location anywhere on the earth with the same margin of error.
도 17은 종래 발명에서 사용되는 북향거리와 동향거리의 개념을 설명하기 위한 도면이다. 도 17에서 중심이 지구의 질량 중심에 위치하는 구를 가정하며, 이 구면 모델 지구(spherical model Earth)의 반경은 R이다. R 값은 적도에서의 지구의 반경인 6,378,137m를 사용할 수 있다.17 is a diagram for explaining the concept of northbound distance and eastbound distance used in the prior art. In FIG. 17, a sphere whose center is located at the center of mass of the Earth is assumed, and the radius of this spherical model Earth is R. The R value can use 6,378,137 m, the radius of the earth at the equator.
세계 좌표계(World coordinate system), 즉 지구 중심 지구 고정 3차원 직각 좌표계(Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system)의 원점 C는 지구의 질량 중심에 위치하며, Z-축은 지구의 자전축과 일치하고, X-축은 원점에서 적도와 본초자오선의 교점을 지나는 직선이며, Y-축의 방향은 오른손 좌표계(RHS: Right-Handed coordinate System)의 원리에 의하여 자동적으로 결정된다.The origin C of the World coordinate system, that is, the Earth-Centered Earth-Fixed three-dimensional Cartesian coordinate system, is located at the Earth's center of mass, and the Z-axis coincides with the Earth's axis of rotation. , the X-axis is a straight line passing through the intersection of the equator and the prime meridian at the origin, and the direction of the Y-axis is automatically determined by the principle of Right-Handed coordinate system (RHS).
이때 측지 위도 φ와 경도 λ와 타원체고 h를 가지는 한 점의 북향거리 N과 동향거리 E는 다음과 같이 측정한다. 도 7에서와 유사하게 측지 위도 φ와 경도 λ와 타원체고 h를 가지는 한 점을 지심 위도 φ와 경도 λ와 지심 고도 h를 가지는 점 P로 대체한다. 그리고 세계 좌표계의 원점 C에서 점 P에 이르는 선분이 구와 만나는 점을 구점(sphere point) S(φ, λ)이라고 지칭하고, 적도 Lo와 본초자오선이 만나는 점을 경위선의 원점(latitude-longitude origin) O라고 지칭한다. 그리고 지심 위도 φ를 가지는 위선(parallels, parallels of latitude, lines of latitude)과 본초자오선이 만나는 점 w를 경로점(waypoint)이라고 지칭한다. 그러면 북향거리는 경위선의 원점 O에서 경로점까지 본초자오선을 따라서 측정한 호(arc)의 길이로 정의하고, 동향거리는 경로점에서 지심 위도 φ와 경도 λ를 가지는 구점 S(φ, λ)까지 위선을 따라서 측정한 호의 길이로 정의한다.At this time, the northward distance N and eastward distance E of a point having geodetic latitude φ, longitude λ, and ellipsoidal height h are measured as follows. Similar to FIG. 7, a point having geodetic latitude φ, longitude λ, and ellipsoidal height h is replaced with a point P having geocentric latitude φ, longitude λ, and geocentric altitude h. The point where the line segment from the origin C of the world coordinate system to the point P intersects the sphere is called the sphere point S(φ, λ), and the point where the equator L o and the prime meridian meet is called the origin of the latitude-longitude line. ) is referred to as O. And the point w where the parallels, parallels of latitude, and lines of latitude with the geocentric latitude φ and the prime meridian meet is called a waypoint. Then, the northward distance is defined as the length of an arc measured along the prime meridian from the origin O of the longitude line to the path point, and the eastward distance is defined as the latitude line from the path point to the sphere point S(φ, λ) having geocentric latitude φ and longitude λ. Therefore, it is defined as the measured arc length.
그런데 이 개념을 일반화하여 북향거리와 동향거리의 측정의 시작이 되는 점을 경위선의 원점 O에서 측지 위도 φo와 경도 λo를 가지는 지표면 상의 다른 기준점(reference point)으로 이동시킬 수 있다. 그러면 기준점은 측지 위도 φo를 가지는 위선과 경도 λo를 가지는 자오선의 교점(point of intersection)이 되며, 북향거리는 기준점에서 경로점까지 자오선을 따라서 측정한 호의 길이이고, 동향거리는 경로점에서 측지 위도 φ와 경도 λ를 가지는 구점 S(φ, λ)까지 위선을 따라서 측정한 호의 길이이다.However, by generalizing this concept, it is possible to move the starting point of measurement of northward and eastward distances from the origin O of the longitude line to another reference point on the earth's surface with geodetic latitude φ o and longitude λ o . Then, the reference point is the point of intersection of the line of latitude with geodetic latitude φ o and the meridian with longitude λ o , the northbound distance is the length of an arc measured along the meridian from the reference point to the route point, and the eastward distance is the geodetic latitude from the route point. It is the length of an arc measured along the latitude line to the ball point S(φ, λ) with φ and longitude λ.
이와 같은 정의에 의하면 북향거리는 측지 위도 φ와 경도 λ의 함수로 수학식 8과 같이 주어지고, 동향거리는 수학식 9와 같이 주어진다.According to this definition, the northward distance is given as Equation 8 as a function of the geodetic latitude φ and longitude λ, and the Eastward distance is given as Equation 9.
Figure PCTKR2022007997-appb-img-000012
Figure PCTKR2022007997-appb-img-000012
Figure PCTKR2022007997-appb-img-000013
Figure PCTKR2022007997-appb-img-000013
여기서 R은 지구의 평균 반경이고, No는 북향거리의 기본 값이며, Eo는 동향거리의 기본 값이고, φo는 기준점의 측지 위도이며, λo는 기준점의 경도이다.where R is the average radius of the earth, N o is the base value of the northward distance, E o is the base value of the eastward distance, φ o is the geodetic latitude of the reference point, and λ o is the longitude of the reference point.
이와 같은 공식을 이용하여 지구상의 임의의 점을 기준점으로 삼을 수 있다. 예를 들어 광화문 광장의 세종대왕 동상의 위치를 좌표계의 기준점으로 삼을 수 있다. 또는 대한민국의 영토 안에서만 사용할 용도로 세종 기준점을 사용할 수도 있고, 대한민국의 영토 안에서는 북향거리와 동향거리가 항상 양의 값을 가지도록 북향거리와 동향거리의 기본값을 부여할 수도 있다.Using this formula, any point on the Earth can be used as a reference point. For example, the position of the statue of King Sejong in Gwanghwamun Plaza can be used as the reference point of the coordinate system. Alternatively, the Sejong reference point can be used for use only within the territory of the Republic of Korea, and the default values for the distance northward and eastbound can be given so that the distance northward and eastbound always have positive values within the territory of the Republic of Korea.
한편, 전 세계를 대상으로 통일된 하나의 좌표계를 사용하고자 할 경우, 북향거리와 동향거리의 측정이 되는 기준점을 위도상으로는 남극(φo = -90°)으로 하고, 경도상으로는 반대자오선(λo = -180°)으로 하며, 북향거리와 동향거리의 기본값은 0으로 할 수 있다(No = 0, Eo = 0). 이와 같은 기준점을 선택하는 이유는 전 지구상에서 북향거리와 동향거리가 양의 값을 갖게 하고, 또 런던(London)과 같은 인구 밀집 지역에서 북향거리나 동향거리의 값이 불연속적이 되는 사태를 방지할 수 있기 때문이다.On the other hand, if you want to use one unified coordinate system for the whole world, the reference point for measuring the northward and eastward distances is the south pole (φ o = -90°) in latitude and the antimeridian (λ o in longitude) = -180°), and the default values for northbound and eastbound distances can be set to 0 (N o = 0, E o = 0). The reason for choosing such a reference point is to ensure that distances heading north and east have positive values all over the globe, and to prevent discontinuities in distances going north and east in densely populated areas such as London. because it can
이와 같은 선택에 의하여 북향거리는 수학식 14와 같이 주어지고, 동향거리는 수학식 15와 같이 주어진다.By this selection, the northward distance is given as in Equation 14, and the eastbound distance is given as in Equation 15.
Figure PCTKR2022007997-appb-img-000014
Figure PCTKR2022007997-appb-img-000014
Figure PCTKR2022007997-appb-img-000015
Figure PCTKR2022007997-appb-img-000015
또한, 역으로 북향거리와 동향거리에서 측지 위도와 경도를 얻는 공식은 수학식 16 내지 17과 같이 주어진다.Inversely, formulas for obtaining geodetic latitude and longitude from northward and eastward distances are given as Equations 16 and 17.
Figure PCTKR2022007997-appb-img-000016
Figure PCTKR2022007997-appb-img-000016
Figure PCTKR2022007997-appb-img-000017
Figure PCTKR2022007997-appb-img-000017
이러한 좌표계에서 지구상의 대표적인 장소들의 북향거리와 동향거리를 계산해보면 표 1과 같다.Table 1 shows the northward and eastward distances of representative places on the earth in this coordinate system.
번호number 장소Place 측지 위도geodetic latitude 경도Hardness 북향거리North facing street 동향거리East street
1One 경위도원점longitude and latitude origin 10,018,754.171m10,018,754.171m 20,037,508.343m20,037,508.343m
22 대척점 antipode 180°180° 10,018,754.171m10,018,754.171m 40,075,016.686m40,075,016.686m
33 북극North Pole 90°90° 20,037,508.343m20,037,508.343m 0.000m0.000 m
44 남극Antarctica -90°-90° 0.000m0.000 m 0.000m0.000 m
55 세종기준점Sejong Standard Branch 36.5222134°36.5222134° 127.3031899°127.3031899° 14,084,388.370m14,084,388.370m 27,491,115.402m27,491,115.402m
66 시드니 오페라 하우스Sydney Opera House -33.8567844°-33.8567844° 151.2152967°151.2152967° 6,249,834.172m6,249,834.172m 30,618,651.175m30,618,651.175m
표 1에서 볼 수 있는 바와 같이 지구상의 모든 지점에서 북향거리와 동향거리가 유한한 양의 값을 가진다. 한편, 대한민국 영토 안에서 대표적인 지점들의 북향거리와 동향거리를 계산해보면 표 2와 같다.As can be seen from Table 1, the distances north and east have finite positive values at all points on the globe. On the other hand, when calculating the northward and eastward distances of representative points within the territory of the Republic of Korea, Table 2 is shown.
번호number 장소Place 측지 위도geodetic latitude 경도Hardness 북향거리North facing street 동향거리East street
1One 세종기준점Sejong Standard Branch 36.5222134°36.5222134° 127.3031899°127.3031899° 14,084,388.370m14,084,388.370m 27,491,115.402m27,491,115.402m
22 대전 중앙로 사거리Daejeon Jungang-ro Intersection 36.3286936°36.3286936° 127.4259233°127.4259233° 14,062,845.844m14,062,845.844m 27,570,728.707m27,570,728.707m
33 백두산 천지연Mt. Baekdu Cheonjiyeon 42.0072268°42.0072268° 128.0564190°128.0564190° 14,694,977.268m14,694,977.268m 25,481,535.991m25,481,535.991m
44 대한민국 최남단비
(마라도)
southernmost tip of Korea
(Marado)
33.1138727°33.1138727° 126.2684738°126.2684738° 13,704,973.619m13,704,973.619m 28,556,380.328m28,556,380.328m
55 독도 영토 표석Dokdo Territorial Signpost 37.2399286°37.2399286° 131.8684690°131.8684690° 14,164,284.060m14,164,284.060m 27,638,526.094m27,638,526.094m
66 서격렬비도Seogyeolbido 36.6115719°36.6115719° 125.5439153°125.5439153° 14,094,335.712m14,094,335.712m 27,302,128.877m27,302,128.877m
표 2에서 볼 수 있는 바와 같이 대한민국의 영토 안에서 임의의 위치를 1m2의 오차 범위로 특정하고자 한다면, 북향거리와 동향거리를 각각 7자리로 표시하면 된다. 예를 들어 이 좌표계를 국내에서만 사용할 목적이라면, 독도 영토 표석의 좌표는 북향거리 4,164,284m, 동향거리 7,638,526m와 같이 특정할 수 있다. 국가지점좌표계에서 한글 두 자와 4자리 숫자 2개로 수평 방향의 위치를 10m×10m의 오차 범위로 특정하는데 비하여, [특 15]의 좌표계에서는 7자리 숫자 2개로 수평 방향의 위치를 1m×1m의 오차 범위로 특정한다는 점을 고려하면, 좌표를 표시하거나 전송하는데 드는 비용(cost)은 동등하다고 간주할 수 있다.As can be seen in Table 2, if you want to specify an arbitrary location within the territory of the Republic of Korea with an error range of 1 m 2 , you can indicate the distance to the north and the distance to the east with 7 digits, respectively. For example, if this coordinate system is intended to be used only in Korea, the coordinates of the Dokdo territorial marker can be specified as 4,164,284m northbound and 7,638,526m eastbound. In the national point coordinate system, the position in the horizontal direction is specified with an error range of 10m × 10m with two Korean characters and two 4-digit numbers, whereas in the coordinate system of [Special 15], the position in the horizontal direction is specified with two 7-digit numbers and 1m × 1m. Considering that it is specified with an error range, the cost of displaying or transmitting coordinates can be considered equal.
what3words 앱과 마찬가지로 국가지점 좌표계의 유용성은 전화로 위치를 구술할 때 발휘된다. 그런데 전화가 되는 지역은 문자 메시지(text message)도 된다. 따라서 전화로 구술하지 않고 문자 메시지로 신고를 하는 경우라면 7자리 숫자 두 개를 보내는 것도 무방하고, 경위도와 다르게 거리의 단위를 갖고 있어 상대적인 거리를 추측하기도 용이하다.Like the what3words app, the usefulness of the country point coordinate system comes into play when dictating your location over the phone. By the way, the area that can be called is also text message (text message). Therefore, if reporting by text message rather than dictating by phone, it is okay to send two 7-digit numbers.
더구나 국가지점 좌표계는 컴퓨터나 앱을 이용하지 않고는 지리좌표계에서 국가지점 좌표계를 계산하거나, 역으로 지리적인 좌표, 즉 위도와 경도를 산출할 수 없는데 반하여, [특 15]의 좌표계에서는 간단한 계산기를 이용하여서도 계산할 수 있고, 심지어 종이와 연필만 가지고서도 대략적으로 추측할 수 있다는 장점이 있다.Moreover, the national point coordinate system cannot calculate the national point coordinate system from the geographic coordinate system or conversely calculate the geographical coordinates, that is, latitude and longitude, without using a computer or application. It has the advantage that it can be calculated using it, and it can be approximated even with only paper and pencil.
한편, 대부분의 현대인은 도시에서 살아간다. 도시에는 아파트나 상업용 빌딩 등 수많은 건물이 있으며, 실내 공간에서 살아가거나 근무하는 현대인에게는 위도와 경도로 특정될 수 있는 지리상의 위치와 더불어 건물 내에 있을 때 그 실내 위치를 포함하여 통합적으로 위치를 특정하는 방법이 필요하다.Meanwhile, most modern people live in cities. In the city, there are numerous buildings such as apartments and commercial buildings, and for modern people who live or work in indoor spaces, geographical location that can be specified by latitude and longitude, as well as the indoor location when inside the building, integrally specifying the location We need a way.
아파트나 지하상가, 빌딩, 주차 타워와 같은 다층 건물에 있을 때는 해발 고도보다는 층(floor) 정보가 더 중요하다. 예를 들어 높은 비즈니스 빌딩에서 누구와 만나기로 했다면, 몇 층에 있는지의 정보가 더 중요하다. 또, 누구나 한번쯤은 지하 주차장에 차를 주차했다가 지하 몇 층에 주차했는지를 잃어버려서 낭패를 당한 경험이 있을 것이다. 이와 같은 다양한 이유에서 해발 고도보다도 층 정보가 더 유용하다.In multi-story buildings such as apartments, underground shopping malls, buildings, and parking towers, floor information is more important than elevation. For example, if you are meeting someone in a tall business building, information about which floor you are on is more important. In addition, at least once, everyone will have experienced a disappointment when they parked their car in an underground parking lot and forgot how many floors they parked in the basement. For these various reasons, floor information is more useful than elevation.
도 18은 [특 15]의 종래 발명에서 사용하는 층 모델을 이해하기 위한 개념도이다. 단순한 수학적 모델과 일관된 개념으로 지구 전체를 묘사하기 위해서는 지면층(ground floor)을 0층이라고 부르는 것이 바람직하다. 또한, 지표면이나 호수의 수면, 바다 한가운데에서의 해수면도 모두 0층으로 간주한다. 여기서 0층은 사람이 자연 상태에서 발을 딛고 돌아다닐 수 있는 지표면 및 이 지표면과 연속적으로 이어지는 건물의 층을 말한다. 따라서 갑돌이가 강변도로를 따라서 조깅을 하거나, 호수에서 수영을 하거나, 마음에 드는 가게를 발견하여 인도에서 가게 안으로 들어갔더라도 모두 0층에 있는 것이 된다. 또, 백두산이나 에베레스트산에 등정하여 산 정상에서 만세를 부르고 있을 때에도 역시 0층에 있는 것이다. 즉, [특 15]의 발명에서 0층은 타원체고나 해발 고도와는 아무런 상관이 없다. 한편, 우리가 2층이라고 부르는 층은 +1층이고, 3층은 +2층이다. 또한, 지하 1층은 -1층이고, 지하 2층은 -2층이다.18 is a conceptual diagram for understanding the layer model used in the conventional invention of [Special 15]. In order to describe the entire Earth with a simple mathematical model and a consistent concept, it is preferable to call the ground floor layer 0. In addition, the ground surface, the surface of a lake, and the sea level in the middle of the sea are all considered as layer 0. Here, the 0th floor refers to the ground surface where people can walk around on their feet in a natural state and the floor of a building continuously connected to the ground surface. Therefore, even if Gapdori jogs along the riverside road, swims in a lake, or finds a store he likes and enters the store from the sidewalk, it is all on the 0th floor. Also, when you have climbed Mt. Baekdu or Mt. Everest and are singing hurray at the top of the mountain, you are still on the 0th floor. That is, in the invention of [Special 15], the 0th floor has nothing to do with the height of the ellipsoid or the altitude above sea level. On the other hand, the layer we call the second layer is the +1 layer, and the third layer is the +2 layer. In addition, the first basement floor is the -1 floor, and the second basement floor is the -2 floor.
[특 15]에서는 지심 고도나 타원체고나 해발 고도를 모두 무시하고, 대신에 층을 나타내는 정수 F를 사용한다. 또한, 수평적인 공간에서의 위치는 북향거리 N과 동향거리 E를 사용한다. 그리고 층을 나타내는 정수 F는 선택적으로 사용한다. 즉, 한 지점의 위치를 (N, E, F)라고 특정했다면, 이는 북향거리 N, 동향거리 E인 건물의 F층을 의미한다. 실제로는 어떤 건물의 F층에서 측지 위도와 경도가 북향거리 N과 동향거리 E에 해당하는 특정 지점을 나타낸다. 한편, (N, E)라고만 적는다면 이는 (N, E, 0)를 의미한다. 즉, 층의 개념이 필요없는 야외의 한 장소를 의미할 수도 있고, 다층 건물의 1층을 의미할 수도 있다. 이와 같이 층이라는 개념을 건물 내에서 실외로까지 논리적으로 확장하여 통합적으로 실내·외의 위치를 특정할 수 있다.In [Special 15], the altitude of the ground center, the height of the ellipsoid, and the altitude above sea level are all ignored, and the integer F representing the floor is used instead. In addition, the northward distance N and the eastward distance E are used for the location in a horizontal space. And the integer F representing the layer is optionally used. In other words, if the location of a point is specified as (N, E, F), this means the F floor of a building with north-facing street N and east-facing street E. In practice, the geodetic latitude and longitude on floor F of a building denotes a particular point corresponding to a distance N north and a distance E east. On the other hand, if you only write (N, E), it means (N, E, 0). That is, it may mean an outdoor place where the concept of a floor is not required, or it may mean the first floor of a multi-story building. In this way, the concept of a floor can be logically extended from the inside of a building to the outside to specify the indoor/outdoor locations integrally.
이 모델은 다층 건물이 대부분인 대도시에서 배달 음식을 시키거나 우편물을 배달하거나 다른 사람과 만날 약속을 하거나, 또는 인터넷에서 찾은 맛집을 찾아가는 등 다양한 목적에서 사용할 수 있다.This model can be used for a variety of purposes, such as ordering food to be delivered, delivering mail, making an appointment with someone, or visiting a restaurant found on the Internet in a large city with many multi-story buildings.
[특 17]에는 이와 같은 위치 식별자(location identifier)를 기반으로 하는 지도 기반의 온라인 플랫폼이 제시되어 있다. 도 19는 웹앱(web app)의 형식으로 실내 지도를 서비스하는 종래 발명의 디지털 지도 시스템(digital map system)의 구성을 보여주는 개념도이다. 스마트폰(smart phone)이나 데스크톱 컴퓨터(desktop computer) 사용자, 혹은 배달 로봇(delivery robot) 등이 인터넷(internet)을 통하여 웹 서버(web server)에 접속하면, 구글 크롬(Google Chrome)이나 마이크로소프트 에지(Microsoft Edge)와 같은 웹 브라우저(web browser)를 사용하여 디지털 지도(digital map)를 이용할 수 있다. 디지털 지도가 웹앱(web app)으로 작동하므로 웹 서버(web server)와 앱 서버(app server)는 사실상 동일하다. 따라서 웹 서버라는 용어와 앱 서버라는 용어를 모두 사용할 수 있다.[Special 17] suggests a map-based online platform based on such a location identifier. 19 is a conceptual diagram showing the configuration of a digital map system of the related art that provides indoor map service in the form of a web app. When a user of a smart phone or desktop computer, or a delivery robot accesses a web server through the Internet, Google Chrome or Microsoft Edge You can use a digital map using a web browser such as (Microsoft Edge). Since the digital map works as a web app, the web server and app server are effectively the same. Therefore, both the terms web server and app server can be used.
디지털 지도 서비스를 원하는 사용자는 컴퓨터나 스마트폰을 이용하여 직접 웹 서버(web server)에 접속하게 되며, 웹 서버는 실외 지도 서버(outdoor map server)와 건물 데이터베이스(building database)와 건물 데이터 저장소(building data store, building data warehouse)에 연결되어 있다. 이들이 통합하여 디지털 지도 시스템(digital map system)의 하드웨어(hardware)를 구성한다고 할 수 있다.A user who wants a digital map service directly accesses a web server using a computer or smartphone, and the web server includes an outdoor map server, a building database, and a building data store. data store, building data warehouse). It can be said that they are integrated to constitute the hardware of a digital map system.
실외 지도 서버(outdoor map server)는 웹 서버에 맵 타일(map tile)을 제공하여 실외 지도를 그리도록 하는 서버이다. 예를 들어 타일 서비스를 제공하는 오픈 스트리트 맵(www.openstreetmap.org)의 서비스 서버를 실외 지도 서버라고 간주할 수 있다.An outdoor map server is a server that provides map tiles to a web server to draw an outdoor map. For example, a service server of Open Street Map (www.openstreetmap.org) providing tile service may be regarded as an outdoor map server.
건물 데이터베이스는 건물의 이름, 주소, 홈페이지, 지리적인 위치, 건물의 외곽선 도면 파일이나 평면도 파일이 저장된 위치 등 건물과 관련된 정보를 조회할 수 있는 데이터베이스이다.The building database is a database capable of inquiring information related to a building, such as a building name, address, homepage, geographical location, and a location where a building's outline drawing file or floor plan file is stored.
건물 데이터 저장소(building data store)는 건물의 외곽선 도면(building outline drawing)과 층별 평면도(floorplan per level)를 포함하는 실내 지도 파일(indoor map file)이 벡터 데이터(vector data)로 저장되어 있는 곳이다. 건물 데이터 저장소는 인터넷에 연결된 NAS(Network Attached Storage)라고 생각할 수 있으며, 사용자와 콘텐츠가 늘어남에 따라 한 개 이상의 장치 혹은 서버가 될 수 있다. 웹 서버는 건물 데이터 저장소에서 실내 지도 파일을 가져와서 실외 지도상의 올바른 위치에 중첩하여 그린다.The building data store is where vector data is stored as indoor map files, including building outline drawings and floorplans per level. . Building data storage can be thought of as Network Attached Storage (NAS) connected to the Internet, and as users and content grow, it can be one or more devices or servers. The web server fetches the indoor map file from the building data store and draws it overlaid on the correct location on the outdoor map.
기존의 방식에서는 PC에서는 웹앱으로, 스마트폰에서는 네이티브 앱(native application)으로 각각 지도 앱을 이용할 수 있었다. 이를 위해서 PC용으로는 HTML5/CSS3/JavaScript를 이용하여 디지털 지도의 웹 사이트(web site)를 만들고, 안드로이드 폰에서는 Kotlin으로 네이티브 앱을 만들며, 아이폰(iPhone)에서는 Swift를 이용하여 네이티브 앱을 만든다. Kotlin은 자바(Java)와 유사하며, Swift는 C++과 유사하다. 결국, JavaScript, Kotlin, Swift라는 독립된 3개의 언어로 앱을 작성하여야 하며, 이 앱을 유지·보수하는 데에도 3배의 노력이 필요하다.In the conventional method, the map app could be used as a web app on a PC and as a native application on a smartphone. To this end, a web site for digital maps is created using HTML5/CSS3/JavaScript for PC, a native app is created with Kotlin for Android phones, and a native app is created for iPhone using Swift. Kotlin is similar to Java, and Swift is similar to C++. In the end, the app must be written in three independent languages: JavaScript, Kotlin, and Swift, and three times the effort is required to maintain and maintain the app.
웹앱의 최대의 장점은 하나의 소스(source)로 PC와 스마트폰에 모두 대응할 수 있으며, 따로따로 앱을 작성·유지·보수할 필요가 없다는 점이다. 이와 같은 일이 가능한 이유는 웹 브라우저(web browser)가 이용할 수 있는 자바스크립트(JavaScript)라는 훌륭한 소프트웨어가 존재하기 때문이다. 즉, PC와 스마트폰에 걸쳐서 존재하는 공통의 플랫폼(platform)이 존재한다. 과거에는 플로피 디스크(floppy disk)나 USB(Universal Serial Bus)에 담긴 프로그램을 PC에 설치해서 사용하던 소프트웨어를 지금은 웹에 접속해서 사용하고, 이용료를 지불하는 방식으로 사용할 수 있게 된 것이 이러한 이유 때문이다. 또한, 웹 기술의 눈부신 발달로 인하여 마이크로소프트 워드(Microsoft Word)나 오토캐드(AutoCAD)와 같은 전문적인 프로그램도 웹앱으로 만들 수 있다.The biggest advantage of the web app is that it can respond to both PC and smartphone with a single source, and there is no need to write, maintain, and maintain a separate app. The reason this is possible is because there is a great piece of software available in web browsers called JavaScript. That is, there is a common platform that exists across PCs and smartphones. It is for this reason that software, which used to be used by installing a program contained in a floppy disk or USB (Universal Serial Bus) on a PC in the past, can now be used by accessing the web and paying a fee. to be. In addition, due to the remarkable development of web technology, professional programs such as Microsoft Word and AutoCAD can be made into web apps.
반면 웹앱의 가장 큰 단점은 매번 해당 웹사이트에 접속하여야 한다는 점이다. 예를 들어 웹앱으로 작성된 마이크로소프트 워드(MicroSoft Word)를 이용하려고 하면, 일단 PC나 스마트폰이 인터넷에 연결되어 있어야 하고, 워드 작업을 하기 위해서 매번 웹사이트를 방문하여야 한다. 웹사이트에 방문하면 클라이언트(client), 즉 웹 브라우저가 호스트(host), 즉 해당 웹서버에 접속하여 필요한 파일들을 가져와서 웹페이지를 만들어서 보여준다.On the other hand, the biggest drawback of web apps is that you have to access the website every time. For example, if you want to use Microsoft Word written as a web app, your PC or smartphone must be connected to the Internet, and you must visit the website every time to work on the word. When a website is visited, a client, that is, a web browser, connects to a host, that is, a corresponding web server, fetches necessary files, and creates and displays a web page.
웹앱으로 만들어진 마이크로소프트 워드를 이용하여 책을 쓰려는 작가가 있다고 하자. 그 작가는 아마도 매일 마이크로소프트 워드의 많은 기능 중 소수의 익숙한 기능만을 이용할 것이다. 그런데 웹앱으로 된 마이크로소프트 워드를 이용하면 어제 가져온 소스 코드를 오늘도 가져오고 내일도 가져와야 한다. 더구나 오늘 가져온 소스는 어제 가져온 소스와 완전히 동일할 수 있다. 그런데도 매번 소스를 가져와야 한다면 엄청나게 비효율적인 시스템이라고 할 수 있다.Let's say there's a writer who wants to write a book using Microsoft Word, which was created as a web app. The writer probably uses only a few familiar features of Microsoft Word's many features on a daily basis. However, if you use Microsoft Word as a web app, you have to bring the source code you brought yesterday and bring it tomorrow as well. Moreover, the source imported today may be exactly the same as the source imported yesterday. However, if you have to import the source every time, it is an extremely inefficient system.
만약 그 작가가 공원의 피크닉 테이블(picnic table)에 앉아서 아름다운 경치를 바라보며 원고를 작성하는 사치를 누리고 있다면, 매번 똑같은 소스를 무선 인터넷으로 가져오는 데이터 비용을 지불해야 하고, 앱의 속도도 느려질 것을 예상할 수 있다. 이러한 점이 웹앱의 가장 큰 단점으로 지적되어 왔다.If the writer had the luxury of sitting at a picnic table in the park and writing his manuscript while gazing at the beautiful scenery, expect to pay for the data that brings the same source to the Wi-Fi every time, and slow down the app. can do. This has been pointed out as the biggest drawback of web apps.
이와 같은 단점은 프로그레시브 웹앱(PWA, Progressive Web App)이라는 혁신적인 기술이 개발되면서 해결되었다. PWA는 설치가 가능한 웹앱이라고 할 수 있다. 웹앱이 PWA가 되기 위해서는 몇 개의 조건을 만족하여야 한다. 우선 http가 아니라 https 프로토콜(protocol)을 사용하여야 하고, 서비스 워커(service work)라는 자바스크립트 파일을 가져야 한다. 또 매니페스트 파일(manifest file)과 컴퓨터나 스마트폰의 바탕 화면에 보여줄 아이콘(icon) 파일도 있어야 한다.These drawbacks were addressed with the development of an innovative technology called Progressive Web App (PWA). A PWA is an installable web app. In order for a web app to become a PWA, several conditions must be satisfied. First of all, you must use https protocol, not http, and have a JavaScript file called service work. You also need a manifest file and an icon file to be displayed on the desktop of your computer or smartphone.
스마트폰에서 크롬(Chrome)으로 프로그레시브 웹앱의 주소에 접속하면 PWA가 실행되면서 '설치' 버튼이 나타난다. 이 버튼을 클릭(click)하면 PWA가 스마트폰에 설치되고, 바탕 화면에 아이콘(icon)도 나타난다. PWA가 설치되면서 필요한 파일들도 스마트폰에 반영구적으로 저장된다. 따라서 다음번에 접속할 때는 동일한 파일을 다시 가져오지 않아도 된다. 만약 새로운 페이지에 접속하거나, 소프트웨어가 업데이트된 부분이 있다면 그 부분만 새로 가져오게 된다. 따라서 PWA의 등장으로 인하여 웹앱의 가장 큰 단점이 제거되었다고 할 수 있다.If you access the address of the Progressive Web App with Chrome on your smartphone, the PWA will run and the 'Install' button will appear. If you click this button, the PWA is installed on your smartphone and an icon appears on the desktop. When the PWA is installed, necessary files are also saved semi-permanently on the smartphone. So the next time you connect, you don't have to import the same file again. If you access a new page, or if there is an updated part of the software, only that part is newly imported. Therefore, it can be said that the biggest drawback of web apps has been removed with the advent of PWA.
이미 살펴본 바와 같이 구글 지도에서는 여러 층으로 구성된 대형 건물에 대하여 실내 지도(indoor map)를 제공한다. 지도의 줌(zoom)이 사전에 설정된 값 이상이 되면 실내 지도 서비스를 제공하는 대형 건물의 기본층(default floor)의 평면도(floorplan)가 보이며, 그 건물의 다른 층을 선택할 수 있는 메뉴가 지도 화면의 한쪽에 보인다. 그 메뉴에서 다른 층을 선택하면 기본층의 평면도가 해당 층의 평면도로 교체되어 보여진다.As we have already seen, Google Maps provides indoor maps for large multi-story buildings. When the zoom of the map exceeds the preset value, the floorplan of the default floor of a large building that provides indoor map service is displayed, and a menu for selecting other floors of the building appears on the map screen. looks on one side of If you select a different floor from that menu, the floor plan of the base floor is displayed replaced with the floor plan of that floor.
이와 같은 방식은 직관적으로 타당하게 보이지만, 실제로는 모두가 의자에 앉아서 컴퓨터 모니터를 통하여 지도를 보던 시절에 더 적합한 방식이다. 모두가 스마트폰이 있고, 또 무인 자동차와 무인 배달 로봇이 점점 현실화되어 가는 현재에는 가장 좋은 방식이라고 할 수 없다.While this seems intuitively reasonable, it's actually more appropriate in an era when everyone sat in a chair and looked at maps on computer monitors. It's not the best way now, when everyone has a smartphone and self-driving cars and unmanned delivery robots are increasingly becoming a reality.
스마트폰에서 지도 앱(map app)을 실행하면 스마트폰의 위치가 GPS 신호로부터 계산되어 지도상에 표시된다. 즉, 스마트폰에서 디지털 지도를 실행하면 지도에 나의 현재 위치가 표시되도록 할 수 있고, 또 나의 위치가 항상 지도의 중심에 올 수 있게 지도가 자동으로 패닝(panning)이 되도록 프로그램을 할 수도 있다. 그러므로 스마트폰의 주인이 어떤 건물의 내부로 들어갔다면 굳이 마우스 클릭(click)이나 화면 터치(touch)를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여줄 수 있을 것이다. 즉, 현재 위치가 층을 선택할 수 있는 다층 건물의 내부라면 굳이 클릭이나 터치를 하지 않더라도 층을 선택할 수 있는 메뉴를 보여주는 것이 편리할 것이다.When a map app is executed on a smartphone, the location of the smartphone is calculated from GPS signals and displayed on a map. In other words, if you run a digital map on your smartphone, you can display your current location on the map, and you can program the map to pan automatically so that your location is always in the center of the map. Therefore, if the owner of the smartphone enters the inside of a building, a menu for selecting a floor can be displayed without clicking the mouse or touching the screen. That is, if the current location is inside a multi-story building where a floor can be selected, it would be convenient to display a menu for selecting a floor without clicking or touching.
이 방법에서 스마트폰의 주인이 지면층(ground floor)에 계속 머무른다면 층 선택 메뉴를 무시하면 되고, 계단이나 엘리베이터를 이용하여 다른 층으로 이동하려는 참이라면 층 선택 메뉴를 통하여 해당 층의 평면도를 미리 확인하면 편리할 것이다. 또한, 데스크톱 컴퓨터나 노트북의 경우에도 지도 화면의 중심을 나의 위치라고 가정하고, 지도 화면을 패닝(panning)하여 지도의 중심이 실내 지도를 제공하는 건물의 내부에 위치한다면 자동으로 층 선택 메뉴를 보여줄 수 있다. 또한, 층을 식별할 수 있는 다양한 기술들과 결합하면, 층이 바뀌면 자동으로 평면도도 교체되어 보이도록 할 수도 있을 것이다.In this method, if the owner of the smartphone continues to stay on the ground floor, he can ignore the floor selection menu, and if he intends to move to another floor using the stairs or elevator, the floor plan of the corresponding floor is displayed in advance through the floor selection menu. It will be convenient to check. In addition, in the case of a desktop computer or laptop, assuming that the center of the map screen is your location, and panning the map screen, if the center of the map is located inside a building that provides indoor maps, a floor selection menu will be automatically displayed. can In addition, when combined with various technologies that can identify floors, it will be possible to automatically change the view of the floor plan when the floor is changed.
도 20은 디지털 지도(digital map)의 메인 화면(main window)을 보여준다. 과거에는 큰 종이에 한 장으로 인쇄되거나 아니면 지역별로 분할되어 책으로 인쇄된 지도가 여행의 필수품이었다. 그런데 지금은 컴퓨터나 스마트폰이 대중화되면서 디지털 지도가 그 자리를 대신하게 되었다. 디지털 지도의 가장 큰 장점은 우리가 관심 있는 장소로 지도 화면(map screen)의 중심을 옮기고(translate, move), 필요한 배율로 확대하며(zoom), 또한 눈앞에 보이는 실제 풍경과 비교하기 위하여 지도의 방향을 바꿀 수 있다(rotate)는 점일 것이다. 이와 같이 종이로 된 지도에서는 없던 편리한 기능을 구현하기 위한 기본 개념이 뷰(view)이다.20 shows the main window of a digital map. In the past, maps printed as a single sheet on a large sheet of paper or divided into regions and printed as a book were essential for travel. But now, with the popularization of computers and smartphones, digital maps have taken their place. The greatest advantage of a digital map is to move the center of the map screen to the place of interest (translate, move), zoom to the necessary magnification (zoom), and also to compare the map with the actual landscape in front of you. It will be a point that can change direction (rotate). The basic concept for implementing convenient functions that were not available in paper maps like this is a view.
뷰의 개념을 이해하기 위해서는 먼저 자바스크립트 객체(Javascript object)의 개념의 이해가 선행되어야 한다. MDN Web Docs는 자바스크립트 객체를 다음과 같이 설명하고 있다(출처: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object).In order to understand the concept of a view, it is necessary to first understand the concept of a JavaScript object. MDN Web Docs describes JavaScript objects as follows (source: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object).
객체 클래스(Object class)는 자바스크립트의 데이터 유형 중 하나를 나타낸다. 이것은 다양한 키(key)를 가지는 값들의 모음 및 더 복잡한 엔티티들을 저장하는 데 사용된다. 객체는 Object() 생성자 또는 객체 초기자 / 리터럴 구문을 통해 생성할 수 있다.(The Object class represents one of JavaScript's data types. It is used to store various keyed collections and more complex entities. Objects can be created using the Object() constructor or the object initializer / literal syntax.)An object class represents one of JavaScript's data types. It is used to store collections of values with various keys and more complex entities. Objects can be created using the Object() constructor or object initializer / literal syntax. Object() constructor or the object initializer / literal syntax.)
예를 들어 좌표(coordinates)라는 사용자 정의 객체를 다음과 같이 정의할 수 있다.For example, a user-defined object called coordinates could be defined as:
var coordinates = { lat: 36.0, lon: 127.0 };var coordinates = { lat: 36.0, lon: 127.0 };
여기서 lat과 lon은 키(key)이며, 36.0과 127.0은 그 값(value)들이다. 예를 들어 lat의 값은 coordinates.lat으로 구할 수 있다.Here, lat and lon are keys, and 36.0 and 127.0 are values. For example, the value of lat can be obtained with coordinates.lat.
대한민국전도 또는 세계지도를 전체 지도라고 한다면, 그 중에서 컴퓨터나 스마트폰에서 보이는 지도의 일부, 또는 그 지도를 보여주는 객체(object)를 뷰라고 생각할 수 있다. 지도 관련하여 대표적인 클라이언트 측 오픈 소스 소프트웨어(client-side open source software)인 오픈레이어(OpenLayers)는 뷰(view)를 다음과 같이 정의하고 있다(출처: https://openlayers.org/en/latest/apidoc/module-ol_View-View.html).If the map of Korea or the world is the entire map, a part of the map viewed on a computer or smartphone, or an object showing the map, can be considered as a view. OpenLayers, a representative client-side open source software related to maps, defines a view as follows (source: https://openlayers.org/en/latest/ apidoc/module-ol_View-View.html).
뷰 객체는 지도의 간단한 이차원적인 모습을 나타낸다. 이 객체에 지도의 중심, 해상도, 회전 작업을 적용할 수 있다. 뷰는 투사 방식을 가지고 있다. 이 투사방식은 좌표의 중심을 결정하고, 이 뷰의 단위가 해상도의 단위를 결정한다. 기본적인 투사방식은 구면 메르카토르(EPSG:3857)이다(A View object represents a simple 2D view of the map. This is the object to act upon to change the center, resolution, and rotation of the map. A View has a projection. The projection determines the coordinate system of the center, and its units determine the units of the resolution (projection units per pixel). The default projection is Spherical Mercator (EPSG:3857).).A view object represents a simple two-dimensional view of a map. You can apply map center, resolution, and rotation operations to this object. A view has a projection method. This projection determines the center of coordinates, and the units of this view determine the units of resolution. The default projection is spherical Mercator (EPSG:3857) (A View object represents a simple 2D view of the map. This is the object to act upon to change the center, resolution, and rotation of the map. A View has a projection The projection determines the coordinate system of the center, and its units determine the units of the resolution (projection units per pixel).The default projection is Spherical Mercator (EPSG:3857).).
구글맵(Google map), BingMap, OpenStreetMap, 네이버 지도, 카카오 지도와 같은 다른 지도들도 모두 유사한 개념을 사용한다. 따라서 뷰를 비공식적이지만 사실상 모든 디지털 지도들이 사용하는 공통 개념이라고 생각할 수 있다.Other maps such as Google map, BingMap, OpenStreetMap, Naver Map and Kakao Map all use a similar concept. Thus, you can think of a view as an unofficial but common concept used by virtually all digital maps.
디지털 지도의 가장 핵심적인 요소는 뷰(view)이며, 사용자와의 상호 작용을 용이하게 하기 위하여 사이드 패널(side panel)이 있는 것이 바람직하다. 도 20에서 뷰는 직사각형의 형상을 하고 있으며, 뷰에 보이는 실외 지도의 범위를 뷰 범위(view extent)라고 부른다. 뷰 범위는 뷰에 보이는 실외 지도의 경도의 최솟값과 최댓값, 위도의 최솟값과 최댓값으로 나타내거나, 아니면 대등하게 웹 메르카토르 도법에서의 동향거리의 최솟값과 최댓값, 북향거리의 최솟값과 최댓값 등으로 나타낼 수 있다.The most essential element of a digital map is a view, and it is desirable to have a side panel to facilitate user interaction. 20, the view has a rectangular shape, and the range of the outdoor map visible in the view is called a view extent. The view range can be expressed as the minimum and maximum values of the longitude and maximum values of the outdoor map visible in the view, or the minimum and maximum values of the latitude, or equivalently, the minimum and maximum values of the eastward distance and the minimum and maximum values of the northward distance in the Web Mercator projection. .
본 발명에서는 뷰(view)를 편의상 지도 화면(map screen) 또는 간단히 화면(screen)이라고 지칭하기로 한다. 그리고 전체 지도 중 뷰 범위에 보이는 일부 지도를 지도 영역(map area)이라고 부르기로 한다. 그리고 지도 앱(map app)을 시작했을 때 맨 처음에 보이는 지도 화면을 초기 화면(initial screen)이라고 부르기로 한다.In the present invention, a view is referred to as a map screen or simply a screen for convenience. In addition, a part of the map visible in the view range among the entire map will be referred to as a map area. The first map screen that is displayed when the map app is started is referred to as the initial screen.
지도 플랫폼(map platform)에서 지도(map)는 뷰(view)와 레이어(layers)와 타겟(target)을 가지는 자바스크립트 객체(JavaScript object)이다. 오픈레이어(openlayers)는 지도 객체(map object)를 다음과 같이 설명하고 있다(출처: https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).In the map platform, a map is a JavaScript object that has views, layers, and targets. Openlayers describes the map object as follows (source: https://openlayers.org/en/latest/apidoc/module-ol_Map-Map.html).
지도는 오픈레이어의 핵심 요소이다. 지도가 그려지기 위해서는 뷰와 하나 이상의 레이어와 타겟 컨테이너가 필요하다(The map is the core component of OpenLayers. For a map to render, a view, one or more layers, and a target container are needed). 여기서 타겟 컨테이너란 HTML 문서(HTML document)에서 지도가 부착되어지는 문서 요소(DOM element)를 지칭한다.Maps are a key element of OpenLayer. The map is the core component of OpenLayers. For a map to render, a view, one or more layers, and a target container are needed. Here, the target container refers to a document element (DOM element) to which a map is attached in an HTML document.
가장 간단한 지도 객체는 다음과 같이 주어질 수 있다.The simplest map object can be given as:
var osmLayer = new ol.layer.Tile({var osmLayer = new ol.layer.Tile({
source: new ol.source.OSM()source: new ol.source.OSM()
});});
var view = new ol.View({var view = new ol.View({
center: [0, 0],center: [0, 0],
zoom: 1zoom: 1
});});
var map = new ol.Map({var map = new ol. Map({
view: view,view: view,
layers: [osmLayer],layers: [osmLayer],
target: 'map'target: 'map'
});});
여기서 뷰의 중심(view center)을 동향거리와 북향거리의 원점([0, 0])으로 하고, 줌은 1로 하였으며, HTML 문서에 map이라는 돔(DOM: Document Object Model) 요소(element)가 있어, 그 map 요소에 지도를 부착한다는 의미이다. 또, 지도에 보여질 맵 타일(map tile)은 오픈스트리트 맵(OSM, OpenStreetMap)을 사용한다.Here, the center of the view is set as the origin ([0, 0]) of the distance east and north, the zoom is set to 1, and a DOM (Document Object Model) element called map is created in the HTML document. Yes, which means attaching a map to that map element. Also, the map tile to be displayed on the map uses OpenStreetMap (OSM).
인터넷으로 접속하는 디지털 지도는 지도의 줌 레벨(zoom level)에 따라서 뷰에 보여지는 내용이 달라진다. 일반적인 지도의 줌 레벨은 0에서 24 정도까지 변할 수 있다. 그리고 줌 레벨이 1씩 증가할 때 뷰에 보여지는 영역은 1/4로 줄어들고, 역으로 지도는 4배씩 확대되어 보여진다.Digital maps accessed through the Internet differ in what is displayed on the view depending on the zoom level of the map. The zoom level of a typical map can vary from 0 to 24 degrees. And, when the zoom level increases by 1, the area shown in the view is reduced to 1/4, and conversely, the map is enlarged by 4 times.
도 20에서 뷰의 중심에는 중심 마커(center marker)가 있다. 이 뷰 중심(view center)의 좌표가 (측지) 위도와 경도, 수학식 14로 주어지는 북향거리(N)와 수학식 15로 주어지는 동향거리(E) 등으로 사이드 패널(side panel) 또는 컨트롤 창(control pane)에 표시된다.20, there is a center marker at the center of the view. The coordinates of the view center are (geodetic) latitude and longitude, the northward distance (N) given by Equation 14 and the eastbound distance (E) given by Equation 15, etc., on the side panel or control window ( displayed in the control pane.
또, 도 20에서 뷰에 OK 벤처타운(OK Venture Town)이 보여지고 있다. 뷰의 중심이 이 건물 - 이하, 중앙의 건물(building at view center)이라고 지칭함 - 의 외곽선(outline) 안에 위치할 때, 좌측의 사이드 패널에는 이 건물의 이름(building name)이 표시되고 있으며, 이 건물이 3층 건물이므로 층을 선택할 수 있는 층 선택 메뉴(floor selector)가 나타난다.In addition, OK Venture Town is shown in the view in FIG. 20 . When the center of the view is located within the outline of this building - hereinafter referred to as the building at view center -, the building name is displayed on the left side panel. Since the building is a three-story building, a floor selector appears where you can select a floor.
도 21은 OpenLayers 문법으로 작성된 자바스크립트 코드(JavaScript code)의 일부로서, 지도 객체(map object)의 구성을 보여준다. 지도 객체의 레이어는 baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, locationMarkerLayer로 구성된다. 레이어는 먼저 선언하는 레이어가 먼저 그려지므로 baseLayer가 가장 밑에 있고, locationMarkerLayer가 가장 위에 있다. baseLayer는 OpenStreetMap에서 그림 파일들로 지도의 타일(tile)들을 받아서 실외 지도를 그리는 레이어이다. baseLayer는 래스터 레이어(raster layer)이고, 나머지는 모두 벡터 레이어(vector layer)이다.21 is a part of JavaScript code written in OpenLayers grammar, and shows the configuration of a map object. The layer of map object is composed of baseLayer, buildingLayer, buildingLabelLayer, floorplanLayer, spaceLabelLayer, unitAreaMarkLayer, and locationMarkerLayer. Layers that are declared first are drawn first, so baseLayer is at the bottom and locationMarkerLayer is at the top. baseLayer is a layer that receives map tiles from OpenStreetMap as picture files and draws an outdoor map. The baseLayer is a raster layer, and all others are vector layers.
locationMarkerLayer는 지도상에서 사용자의 위치나 나침반 등을 표시하기 위한 레이어이고, unitAreaMarkLayer는 단위 면적을 표시하기 위한 레이어이다.locationMarkerLayer is a layer for displaying a user's location or a compass on a map, and unitAreaMarkLayer is a layer for displaying a unit area.
baseLayer와 locationMarkerLayer와 unitAreaMarkLayer를 제외한 나머지 레이어들이 구조 레이어 그룹(structure layer group)을 형성한다. 이 중에서 buildingLayer는 건물의 외곽선(building outline)을 그리기 위한 레이어이고, floorplanLayer는 건물의 층별 평면도(floorplan per level) 중 어느 한 층의 평면도를 그리기 위한 레이어이다. buildingLabelLayer는 건물의 이름이나 홈페이지 주소 등 건물과 관련된 핵심 정보를 나타내기 위한 레이어이고, spaceLabelLayer는 층별 평면도에 보이는 개별 공간들(spaces)의 상호 등을 보여주기 위한 레이어이다. 예를 들어 각각의 방(room)이 하나의 공간이 될 수 있다.The remaining layers except baseLayer, locationMarkerLayer, and unitAreaMarkLayer form a structure layer group. Among them, buildingLayer is a layer for drawing a building outline, and floorplanLayer is a layer for drawing a plan view of any one floor among floorplans per level of a building. buildingLabelLayer is a layer for displaying key information related to the building, such as the name of the building or homepage address, and spaceLabelLayer is a layer for showing each other of individual spaces shown in the floor plan. For example, each room can be a single space.
도 21은 하나의 예시에 불과하지만, 가장 먼저 실외 지도를 표시하는 지도 레이어 그룹(map layer group)이 있고, 그 위에 벡터 레이어(vector layer)로 건물의 외곽선이나 평면도를 보여주기 위한 구조 레이어 그룹이 있다는 점이 중요하다. 도 21에서 지도 레이어 그룹은 단 하나의 레이어(즉, baseLayer)만 있는 레이어 그룹이지만, 일반적인 지도와 위성 지도를 함께 사용하는 예에서는 지도 레이어 그룹도 복수의 레이어를 갖게 된다. 또, 구조 레이어 그룹은 여러 개의 레이어로 구성될 수 있다. 이와 같이 여러 개의 레이어로 구성하는 이유는 구조적으로 프로그래밍을 하기 위해서이다.Although FIG. 21 is just one example, there is a map layer group that displays an outdoor map first, and a structure layer group for showing the outline or floor plan of a building as a vector layer on top of that. It is important that there is In FIG. 21, the map layer group is a layer group having only one layer (ie, baseLayer), but in an example in which a general map and a satellite map are used together, the map layer group also has a plurality of layers. Also, the structural layer group may be composed of several layers. The reason for configuring multiple layers like this is to do structural programming.
이와 같이 종래 발명의 실시예는 디지털 지도(digital map)의 화면(view, map screen)에 실외 지도(outdoor map)와 건물(building)의 평면도(floorplan)를 포함하는 실내 지도(indoor map)를 통합적으로 표시하는 방법을 제공한다. 도 22는 종래 발명의 실시예에서 디지털 지도가 표시되는 전체 과정을 예시하는 순서도(flowchart)이다. 여기에는 실외 지도 서버(outdoor map server)를 유지하는 단계, 건물들의 외곽선 도면(building outline drawings)과 평면도(floorplans)를 건물별로 각각 개별 폴더(individual folder)들에 관리하는 건물 데이터 저장소(building data store)를 유지하는 단계, 건물들의 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)를 유지하는 단계를 포함한다.As such, the embodiment of the prior art integrates an indoor map including an outdoor map and a floorplan of a building on a view (map screen) of a digital map. provides a way to display 22 is a flowchart illustrating an entire process of displaying a digital map in an embodiment of the related art. This includes maintaining an outdoor map server, a building data store that manages building outline drawings and floorplans in individual folders for each building. ), and maintaining a building database that manages map setting data of buildings.
상기 건물 데이터베이스에 저장된 지도 설정 데이터는 각 건물의 고유식별번호(unique building identification number, primary ID, bldID)와 상기 개별 폴더에 이르는 전체 경로(full path)와 최저층(lowest floor)의 층수(minFloor)와 최고층(highest floor)의 층수(maxFloor)와 건물의 외곽선 표시 줌 레벨(zoomShowBld, zoom level for showing building outline)과 평면도 표시 줌 레벨(zoomShowFloor, zoom level for showing floorplan)과 북향거리 대응 정수(northing corresponding integer) I와 동향거리 대응 정수(easting corresponding integer) J를 포함한다.The map setting data stored in the building database includes the unique building identification number (primary ID, bldID) of each building, the full path to the individual folder, the number of floors of the lowest floor (minFloor) and The number of floors of the highest floor (maxFloor), the zoom level for showing building outline (zoomShowBld, zoom level for showing building outline), the zoom level for showing floor plan (zoomShowFloor, zoom level for showing floorplan), and the northing distance corresponding integer ) I and the easting corresponding integer J.
사용자가 디지털 지도를 시작하면 초기 설정 값(initial map settings)으로 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계를 포함한다. 뷰를 갱신하면 실외 지도가 갱신될 뿐만 아니라 그 안에 포함된 건물의 외곽선이나 평면도도 마찬가지로 줌, 팬, 회전된 상태로 보여진다.When the user starts the digital map, the outdoor map is displayed in the view with the initial map settings, and the view is updated according to the user's zoom, pan, and rotate selections. include Renewing the view not only updates the outdoor map, but also zooms, pans, and rotates the outlines and floor plans of the buildings included in it.
디지털 지도의 사전 설정 데이터(preset data)에는 건물의 평면도를 표시하는 절대적인 줌 설정 값(preset zoom threshold value)이 있다. 예를 들어 대한민국전도를 보고 있을 때 대한민국 내 건물들의 평면도를 모두 표시한다는 것은 가능하지도 필요하지도 않기 때문이다. 따라서 줌이 설정 값 이상으로 일부 건물에 대하여는 평면도를 보여줄 필요성이 있는 줌 레벨(zoom level)을 예를 들어 15로 설정할 수 있다. 이와 같이 디지털 지도의 줌이 사전에 설정한 값 이상이면 건물 데이터베이스를 검색하여 지리적 위치가 뷰 범위(view extent)에 포함되는 건물들의 목록(list)을 작성하는 단계를 포함한다.In the preset data of the digital map, there is an absolute zoom threshold value for displaying the floor plan of the building. For example, it is neither possible nor necessary to display the floor plans of all buildings in Korea when viewing the map of Korea. Therefore, a zoom level that needs to show a floor plan for some buildings with a zoom higher than a set value may be set to 15, for example. In this way, if the zoom of the digital map is greater than or equal to a preset value, a building database is searched and a list of buildings whose geographic locations are included in a view extent is prepared.
도 23은 뷰에 처음으로 평면도를 표시하는 평면도 표시 서브루틴을 예시하는 순서도이다. 뷰 범위 건물 목록 Bld_ID에 있는 건물의 숫자가 0보다 크면 for 루프(for loop)와 같은 순환 루프가 시작되며, for 루프는 목록에 있는 첫 번째 건물부터 시작한다(i = 0). 이 첫 번째 건물은 Bld_ID[0]이며, 마지막 건물은 Bld_ID[Bld_ID.length - 1]로 주어진다.23 is a flow chart illustrating a floor plan display subroutine for displaying a floor plan for the first time in a view. If the number of buildings in the view range building list Bld_ID is greater than 0, a recursive loop such as a for loop is started, and the for loop starts with the first building in the list (i = 0). This first building is given by Bld_ID[0], and the last building is given by Bld_ID[Bld_ID.length - 1].
여기서 뷰 범위 건물 목록(Bld_ID)은 건물의 중심 좌표, 또는 건물의 전부나 일부가 뷰 안에 위치하고, 건물 데이터베이스에도 등록된 건물들의 목록이다. 그런데 어떤 건물은 너무 작아서 이 줌 레벨에서 표시하는 것이 부적절할 수 있다. 따라서 이 목록에 있는 건물들에 대하여 개별적으로 디지털 지도의 줌 레벨(zoom level)이 외곽선을 표시하는 줌 레벨(zoomShowBld)보다 큰 경우에만 건물 외곽선을 표시하게 된다. 또한, 뷰 범위 건물 목록에서 외곽선이 표시되어야 할 건물들의 목록 - 외곽선 표시 대상 건물 목록(bldIDsToShow)이라 지칭함 - 을 추출하여 관리한다. 이 건물, 즉 i번째 건물(ith building)이 외곽선 표시 대상 건물 목록에 있는 건물이면 이 건물의 외곽선 도면(building outline drawing)을 데이터 저장소(data store)에서 가져와서 건물 레이어(buildingLayer)에 추가한다.Here, the view range building list (Bld_ID) is the center coordinates of the building, or a list of buildings in which all or part of the building is located in the view and registered in the building database. However, some buildings may be too small to display at this zoom level. Therefore, for each building in this list, the building outline is displayed only when the zoom level of the digital map is greater than the zoom level (zoomShowBld) displaying the outline. In addition, a list of buildings to be displayed with outlines - referred to as a list of buildings to display outlines (bldIDsToShow) - is extracted and managed from the list of buildings in the view range. If this building, that is, the i-th building, is a building in the list of buildings to be outlined, the building outline drawing of this building is fetched from the data store and added to the buildingLayer.
실외 지도는 뷰에 보여주고자 하는 지리적 위치와 줌 레벨이 정해지면 지도에 보여질 타일들이 자동적으로 정해진다. 맵 타일(map tile)은 png 파일의 형태로 제작된 정사각형의 래스터 파일(raster file)을 사용하는 경우가 대부분이다. 그런데 실내 지도는 실외 지도 위에 중첩되어 보여져야 하고, 사용자가 다른 층을 선택하면 다른 실내 지도, 즉 다른 층의 평면도가 보여져야 하므로 실외 지도와 같은 타일 방식으로는 서비스를 하기 어렵다. 따라서 실내 지도는 실외 지도와 별개의 데이터로 관리되어야 하며, 데이터 저장소(data store)에 저장되었다가 필요시 불러와서 실외 지도 위에 중첩하여 표시할 수 있어야 한다.For outdoor maps, tiles to be displayed on the map are automatically determined when the geographic location and zoom level to be displayed on the view are determined. In most cases, a square raster file produced in the form of a png file is used as a map tile. However, the indoor map must be overlapped on the outdoor map, and when the user selects another floor, another indoor map, that is, a floor plan of another floor, must be displayed, so it is difficult to provide a service in the same tiled manner as the outdoor map. Therefore, the indoor map should be managed as separate data from the outdoor map, stored in a data store, and then retrieved when necessary and displayed superimposed on the outdoor map.
이와 같이 데이터 저장소에 저장되었다가 웹 서버에 제공되기 위해서는 텍스트(text) 기반의 벡터 파일(vector file)로 실내 지도를 작성하는 것이 바람직하며, 이에 가장 적합한 파일 형식이 지오제이슨(GeoJSON)이다. 공식적인 홈페이지(https://geojson.org)에 의하면 GeoJSON은 다양한 지리적인 데이터 구조를 표현하기 위한 형식이다(GeoJSON is a format for encoding a variety of geographic data structures)비특9.In this way, in order to be stored in a data storage and provided to a web server, it is desirable to create an indoor map as a text-based vector file, and the most suitable file format for this is GeoJSON. According to the official website (https://geojson.org), GeoJSON is a format for encoding a variety of geographic data structures.
위키피디아 한국어 사이트(https://ko.wikipedia.org/wiki/GeoJSON)에는 "GeoJSON(지오제이슨)은 위치정보를 갖는 점을 기반으로 체계적으로 지형을 표현하기 위해 설계된 개방형 공개 표준 형식이다. 이것은 JSON인 자바스그립트 오브젝트 노테이션(Object Notation)을 사용하는 파일 포맷이다."라고 해설되어 있다비특10. 따라서 외곽선 도면과 평면도는 GeoJSON 형식으로 작성하는 것이 바람직하다.According to the Korean Wikipedia site (https://ko.wikipedia.org/wiki/GeoJSON), "GeoJSON (GeoJason) is an open and open standard format designed to systematically represent terrain based on geographic points. This is JSON. It is a file format that uses Javascript Object Notation ." Therefore, it is desirable to create outline drawings and floor plans in GeoJSON format.
건물의 외곽선(outline)은 폐곡선(closed curve)이나 다각형(polygon)으로 주어져야 한다. 그런데 GeoJSON 형식에서는 곡선을 허용하지 않으므로 실제로는 다각형으로만 주어져야 한다. 외곽선이 다각형으로 주어지면 뷰의 중심(view center)이 다각형의 안에 있는지 바깥에 있는지 판단할 수 있다.The outline of the building should be given as a closed curve or polygon. However, the GeoJSON format does not allow curves, so in reality it should only be given as a polygon. If the outline is given as a polygon, it can be determined whether the view center is inside or outside the polygon.
다각형의 꼭지점을 구성하는 어느 한 점의 좌표는 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어진다. 자바스크립트에서 대괄호(square brackets) []는 배열을 의미한다. 따라서 이 외곽선 도면을 빌딩 레이어(buildingLayer)에 추가하면 자동적으로 올바른 위치에 추가된다.The coordinates of any one point constituting the vertex of a polygon are given in the form of [distance east, distance north] or [longitude, latitude]. In JavaScript, square brackets [] denote an array. So, when you add this outline drawing to the buildingLayer, it is automatically added to the correct location.
다음으로, 건물 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물의 이름 등을 포함하는 라벨(label)을 표시하는 줌 레벨(zoomShowLabel)보다 큰 경우에는 건물의 라벨을 건물 라벨 레이어(bldLabelLayer)에 추가한다.Next, if the zoom level of the digital map is greater than the zoom level (zoomShowLabel) displaying the label including the name of the building for the buildings in the building list to display the building outline, the label of the building is displayed as the building label. Add it to the layer (bldLabelLayer).
그 다음으로 다시 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 디지털 지도의 줌 레벨이 건물들의 평면도 표시 줌 레벨(zoomShowFloor, zoom level for showing floorplan)보다 큰지 조사하고, 디지털 지도의 줌 레벨이 평면도 표시 줌 레벨보다 큰 건물들에 대하여는 다시 지면층(+ground floor)이 있는 건물인지 확인한다. 이는 그 건물의 최저층(minFloor)이 0보다 작거나 같고, 최고층(maxFloor)이 0보다 크거나 같은지를 조사하여 알 수 있다.Next, for the buildings in the list of buildings to be displayed as outlines, it is investigated whether the zoom level of the digital map is greater than the zoom level for showing floor plans (zoomShowFloor, zoom level for showing floorplan) of the buildings, and the zoom level of the digital map is the zoom level for showing floor plans. For buildings taller than the level, check again if the building has a +ground floor. This can be found by examining whether the lowest floor (minFloor) of the building is less than or equal to 0 and the highest floor (maxFloor) is greater than or equal to 0.
다음으로, 이 두 가지 테스트를 모두 통과한 건물들의 목록 - 이하, 평면도 표시 대상 건물 목록이라 지칭함 - 을 작성하고, 이 목록에 있는 건물들에 대해서는 지면층의 평면도들을 데이터 저장소에서 가져와서 해당 건물들의 외곽선들에 부합되게 중첩하여 표시한다. 이 평면도들에 있는 점들의 위치도 모두 [동향거리, 북향거리], 또는 [경도, 위도]의 형식으로 주어지므로, 평면도 레이어(floorplanLayer)에 지면층의 평면도를 추가하면, 건물의 외곽선과 지면층의 평면도가 모두 실외 지도 상의 올바른 위치에 표시된다.Next, a list of buildings that have passed both of these tests (hereinafter referred to as a list of buildings subject to floor plan display) is created, and for the buildings in this list, floor plans of the ground floor are retrieved from the data store and the corresponding buildings are displayed. It is displayed by overlapping to match the outlines. Since the locations of the points in these floor plans are all given in the form of [distance to the east, distance to the north] or [longitude, latitude], adding the floor plan to the floorplanLayer will give you the outline of the building and the ground floor. All of the floor plans are displayed in the correct location on the outdoor map.
지금까지 설명한 내용은 디지털 지도를 시작하여 건물의 평면도가 처음으로 보이기까지의 순서도라고 할 수 있다. 이후 줌, 팬, 회전 작용이 또 발생하여 새로운 평면도를 추가하거나, 기존의 평면도를 이동시키거나 또는 기존의 평면도 중 일부를 제거하는 것과 같은 지도 갱신(map update) 과정은 상기한 과정을 반복할 수도 있다. 즉, 이미 작성한 뷰 범위 건물 목록과 외곽선 표시 대상 건물 목록과 평면도 표시 대상 건물 목록을 모두 0으로 초기화하고 뷰에 있는 모든 외곽선 도면과 평면도를 제거한 이후에, 뷰를 갱신하는 단계(update view)부터 다시 시작할 수도 있다.What has been described so far is a flow chart from the beginning of a digital map to the first view of a building's floor plan. A map update process may then repeat the above process, such as zooming, panning, or rotating operations to add a new floor plan, move an existing floor plan, or remove some of the existing floor plans. have. That is, after initializing the already created view range building list, the outline display target building list, and the floor plan display target building list to 0, and removing all outline drawings and floor plans in the view, start again from the update view step. may start
그런데 사용자 상호작용이 일어날 때마다 건물 외곽선 도면이나 평면도를 모두 제거하고 새로 그리는 작업은 대단히 비효율적이다. 따라서 지도 갱신 서브루틴은 지금까지의 과정과 비슷하지만, 평면도 표시 서브루틴이 주로 차이가 나며, 뷰 범위 건물 목록(Bld_ID)과 외곽선 표시 대상 건물 목록 (bldIDsToShow)과 평면도 표시 대상 건물 목록(floorplanIDsToShow) 이외에 추가로 외곽선 표시 건물 목록(bldIDsInView)과 평면도 표시 건물 목록(floorplanIDsInView)을 따로따로 유지하고 갱신하는 알고리즘을 사용하면 더 효과적이다. 즉, 뷰가 변화되면 뷰 범위 건물 목록과 외곽선 표시 대상 건물 목록을 새로 작성한 이후에, 외곽선 표시 건물 목록과 비교하여 기존의 건물의 외곽선 도면을 삭제하거나 갱신하는 단계 및 새로운 건물의 외곽선 도면을 추가하는 단계를 포함하며, 평면도와 관련해서도 마찬가지의 단계를 거치게 된다.However, it is very inefficient to remove all building outline drawings or floor plans and draw them again whenever user interaction occurs. Therefore, the map update subroutine is similar to the previous process, but the floor plan display subroutine is mainly different, except for the view range building list (Bld_ID), outline display target building list (bldIDsToShow), and floor plan display target building list (floorplanIDsToShow). In addition, it is more effective to use an algorithm that separately maintains and updates the outline display building list (bldIDsInView) and the floor plan display building list (floorplanIDsInView). That is, when the view is changed, after newly creating the view range building list and the outline display target building list, comparing with the outline display building list, deleting or updating the outline drawing of the existing building and adding the outline drawing of the new building It includes steps, and it goes through the same steps in relation to the floor plan.
이와 같은 기능을 수행하는 디지털 지도 시스템(digital map system)은 실외 지도 서버(outdoor map server)와, 건물들의 외곽선 도면(building outline drawing)과 평면도를 건물별로 각각 개별 폴더(individual folder)에 관리하는 데이터 저장소(data store)와, 건물들의 지도 설정 데이터(map setting data)를 관리하는 건물 데이터베이스(building database)와, 뷰(view)에 실외 지도(outdoor map)와 건물(building)의 평면도(floorplan)를 포함하는 실내 지도(indoor map)를 통합적으로 표시하기 위하여 일련의 단계들(series of stages)을 실행하는, 매체에 저장된 컴퓨터 프로그램을 포함한다.A digital map system that performs this function includes an outdoor map server and data that manages building outline drawings and floor plans of buildings in individual folders for each building. A data store, a building database that manages map setting data of buildings, and outdoor maps and floorplans of buildings in views. A computer program stored on a medium that executes a series of stages to integrally display an indoor map containing
상기 일련의 단계들은 디지털 지도를 초기 설정 값(initial map settings)으로 시작하여 뷰에 실외 지도를 보여주는 단계와, 사용자의 줌(zoom), 팬(pan), 회전(rotate) 선택에 맞게 뷰를 갱신하는 단계와, 디지털 지도의 줌(zoom)이 사전에 설정한 값(preset threshold zoom value) 이상이면 건물 데이터베이스를 검색하여 지리적인 좌표(geographic coordinates)가 뷰 범위(view extent)에 포함되는 뷰 범위 건물 목록을 작성하는 단계와, 뷰 범위 건물 목록에 있는 건물들의 숫자가 0보다 크면 평면도 표시 서브루틴(floorplan display subroutine)과 층 선택 서브루틴(floor selection subroutine)을 실행하는 단계를 포함한다.The above sequence of steps includes starting the digital map with initial map settings, displaying the outdoor map in the view, and updating the view according to the user's zoom, pan, and rotate selections. and, if the zoom of the digital map is greater than or equal to a preset threshold zoom value, the building database is searched and the view range building whose geographic coordinates are included in the view extent. Creating a list, and executing a floorplan display subroutine and a floor selection subroutine if the number of buildings in the view range building list is greater than zero.
[특 15]에 개시된 종래 발명의 좌표계에서 출원인의 사무실이 소재한 OK벤처타운의 도심(centroid)의 지리적인 좌표(geographic coordinates)는 측지 위도 36.32981409°와 경도 127.42671111°로 주어지며, 이로부터 수학식 14와 15를 이용하여 북향거리 N과 동향거리 E를 구해보면 각각 N = 14062970.577m와 E = 27570402.871m로 주어진다. 북향거리 N을 반올림한 북향거리 대응 정수(northing corresponding integer) I와 동향거리 대응 정수(easting corresponding integer) J는 각각 14062971과 27570403으로 주어진다. 이로부터 OK벤처타운의 건물 외곽선 도면(Bld.geojson)과 평면도(G.geojson, F1.geojson, F2.geojson)를 저장하는 폴더의 이름을 계산하면 N14062971E27570403으로 주어진다. 따라서 3층 건물인 OK벤처타운의 건물 파일은 다음과 같은 구조로 저장된다.In the coordinate system of the prior invention disclosed in [Special 15], the geographic coordinates of the centroid of OK Venture Town, where the applicant's office is located, are given as geodetic latitude 36.32981409 ° and longitude 127.42671111 °, from which Equation 14 Using and 15, N = 14062970.577m and E = 27570402.871m are given as northbound distance N and eastbound distance E, respectively. The northing corresponding integer I and the easting corresponding integer J, rounded off of the northing distance N, are given as 14062971 and 27570403, respectively. From this, if you calculate the name of the folder that stores the building outline drawing (Bld.geojson) and floor plan (G.geojson, F1.geojson, F2.geojson) of OK Venture Town, it is given as N14062971E27570403. Therefore, the building file of OK Venture Town, which is a three-story building, is stored in the following structure.
속성property 폴더 경로folder path 폴더 이름folder name 파일명file name
건물 외곽선 파일building outline file https://map.digitalearth.land/datastorehttps://map.digitalearth.land/datastore N14062971E27570403N14062971E27570403 Bld.geojsonBld.geojson
1층 평면도1st floor plan "" "" G.geojsonG.geojson
2층 평면도2nd floor floor plan "" "" F1.geojsonF1.geojson
3층 평면도3rd floor floor plan "" "" F2.geojsonF2.geojson
우선 데이터 저장소(data store)는 https://map.digitalearth.land/datastore에 위치한다. 이 안에 각각의 건물은 각자의 폴더를 가지고 있으며, OK벤처타운은 N14062971E27570403이라는 폴더 안에 존재한다. 3층 건물인 OK벤처타운은 1층, 2층, 3층의 평면도와 건물 외곽선 도면을 더하여 총 4개의 파일이 저장되어 있다. 이와 같은 파일 구조에서 도 22 내지 도 23에 도시한 알고리즘을 사용하여 효과적으로 실외 지도 위에 실내 지도를 표시할 수 있다.First of all, the data store is located at https://map.digitalearth.land/datastore. Each building in this has its own folder, and OK Venture Town exists in a folder called N14062971E27570403. OK Venture Town, a 3-story building, has a total of 4 files stored including the floor plan of the 1st, 2nd and 3rd floors and the outline drawing of the building. In such a file structure, an indoor map can be effectively displayed on top of an outdoor map using the algorithms shown in FIGS. 22 and 23 .
종래 발명의 웹앱을 데스크톱 컴퓨터와 스마트폰에서 같이 사용하려고 할 때, 가장 먼저 해결하여야 하는 문제는 스크린 해상도(resolution)의 큰 차이에 대처하는 것이다. 또한, 데스크톱 컴퓨터와는 달리 스마트폰 사용자는 스마트폰을 세로로 세워서 사용하기도 하고(인물 사진 모드, portrait mode), 가로로 눕혀서 사용하기도 한다(풍경 사진 모드, landscape mode). 따라서 스마트폰의 경우에는 스마트폰의 방향(orientation)에도 대응을 하여야 한다.When trying to use the web app of the prior invention on a desktop computer and a smartphone, the first problem to be solved is to cope with the large difference in screen resolution. Also, unlike desktop computers, smartphone users use their smartphones vertically (portrait mode) or horizontally (landscape mode). Therefore, in the case of a smartphone, it is necessary to respond to the orientation of the smartphone.
이런 문제는 CSS3의 미디어 쿼리(media query) 또는 이를 이용하는 자바스크립트 라이브러리를 이용하여 해결할 수 있다. 미디어 쿼리를 이용하면 웹이 실행되는 클라이언트(client)의 스크린(screen) 크기를 알 수 있다. 실제로는 윈도우(window), 스크린(screen), 뷰포트(viewport) 등 다양한 화면(screen)의 정의가 있고, 그 크기도 다 다르다. 스크린의 경우에도 바깥 크기(outerWidth, outerHeight)와 안쪽 크기(innerWidth, innerHeight)가 따로 존재한다. 그러나 본 발명의 사상을 이해하기 위해서는 미디어 쿼리를 사용하여 데스크톱이나 스마트폰 화면의 크기와 방향을 알 수 있다는 사실만 알면 충분하다.This problem can be solved by using CSS3's media query or a JavaScript library that uses it. Using media query, you can know the screen size of the client running the web. In reality, there are various definitions of screens, such as window, screen, and viewport, and their sizes are all different. Even in the case of a screen, there are separate outer sizes (outerWidth, outerHeight) and inner sizes (innerWidth, innerHeight). However, in order to understand the concept of the present invention, it is sufficient to know that the size and orientation of a desktop or smartphone screen can be obtained using media queries.
한편, 전문적인 자바스크립트 라이브러리(JavaScript library)를 이용하면 구체적인 클라이언트의 정체를 알 수 있다. 즉, 클라이언트가 아이폰 5인지, 아니면 삼성 갤럭시 22인지도 알 수 있다. 도 24는 동일한 핵심 코드(core code)를 사용하여 데스크톱 컴퓨터, 스마트폰 인물 사진 모드/풍경 사진 모드에 대응하는 방법을 예시하고 있다.On the other hand, if you use a specialized JavaScript library, you can find out the identity of a specific client. In other words, it can also tell if the client is an iPhone 5 or a Samsung Galaxy 22. 24 illustrates a method of responding to desktop computer and smartphone portrait mode/landscape mode using the same core code.
사용자가 데스크톱 컴퓨터나 스마트폰의 웹 브라우저로 해당 사이트(https://map.digitalearth.land)에 접속하면, 상기 인터넷 주소의 서버(server)에 존재하는 인덱스 페이지(index.html)가 실행된다. 인덱스 페이지는 미디어 쿼리 또는 자바스크립트 라이브러리를 사용하여 웹에 접속한 클라이언트의 종류(데스크톱 컴퓨터, 태블릿 PC, 스마트폰) 및 방향(screen mode, orientation)을 알아낸 후, 그에 맞는 랜딩 페이지(landing page)로 이송(redirect)한다. 즉, 클라이언트가 데스크톱 컴퓨터이면 indexDesktopLandscape.html 페이지가 실행되도록 하고, 세워진 스마트폰이면(인물 사진 모드) indexMobilePortrait.html 페이지를 연결하며, 누워진 스마트폰이면(풍경 사진 모드) indexMobileLandscape.html 페이지를 연결한다. indexDesktopLandscape.html과 indexMobilePortrait.html과 indexMobileLandscape.html 페이지에서 동작하는 자바스크립트 프로그램은 동일하거나 유사하지만, 인터넷 페이지의 UI(user intrface)가 각각 다르게 시작된다.When a user accesses a corresponding site (https://map.digitalearth.land) with a web browser of a desktop computer or smart phone, an index page (index.html) existing on a server of the Internet address is executed. The index page uses media queries or JavaScript libraries to determine the type (desktop computer, tablet PC, smartphone) and direction (screen mode, orientation) of the client accessing the web, and then creates a suitable landing page. redirect to That is, if the client is a desktop computer, the indexDesktopLandscape.html page is executed, if the client is a standing smartphone (portrait mode), the indexMobilePortrait.html page is linked, and if the client is a lying smartphone (landscape mode), the indexMobileLandscape.html page is linked. . The JavaScript programs that operate on the indexDesktopLandscape.html, indexMobilePortrait.html, and indexMobileLandscape.html pages are the same or similar, but the UI (user interface) of the Internet page starts differently.
[선행기술문헌][Prior art literature]
[특허문헌][Patent Literature]
[특 1] Mohan Ganesalingam, Christopher Sheldrick, Jack Waley-Cohen, "Method and apparatus for identifying and communicating locations", 미국 등록특허 제9,883,333호, 등록일 2018년 1월 30일.[Special 1] Mohan Ganesalingam, Christopher Sheldrick, Jack Waley-Cohen, "Method and apparatus for identifying and communicating locations", US Patent No. 9,883,333, Registration Date January 30, 2018.
[특 2] Richard D. Haney, "Location sharing and tracking using mobile phones or other wireless devices", 미국 등록 특허 제7,353,034호, 등록일 2008년 4월 1일.[Special 2] Richard D. Haney, "Location sharing and tracking using mobile phones or other wireless devices", US Patent No. 7,353,034, Registration Date April 1, 2008.
[특 3] Sami Sikila, "Positioning system and method", 미국 공개 특허 제2003/0149527호, 공개일 2003년 8월 7일.[Special 3] Sami Sikila, "Positioning system and method", US Patent Publication No. 2003/0149527, published on August 7, 2003.
[특 4] Seung June Oh and Minah Oh, "Location-based text messaging", 미국 등록 특허 제7,742,774호, 등록일 2010년 6월 22일.[Special 4] Seung June Oh and Minah Oh, "Location-based text messaging", US Patent No. 7,742,774, Registration Date June 22, 2010.
[특 5] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", 미국 등록 특허 제8,369,867호, 등록일 2013년 2월 5일.[Special 5] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", US Patent No. 8,369,867, Registration Date February 5, 2013.
[특 6] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", 미국 등록 특허 제10,368,199호, 등록일 2019년 7월 30일.[Special 6] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", US Patent No. 10,368,199, Registration Date July 30, 2019.
[특 7] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", 미국 등록 특허 제10,841,739호, 등록일 2020년 11월 17일.[Special 7] Marcel Mwa Van Os, Scott Herz, Mike Matas, "Location sharing", US Patent No. 10,841,739, Registration Date November 17, 2020.
[특 8] 김한석, 김성수, "이동통신망을 이용한 비상호출 처리장치와 그 방법", 대한민국 등록 특허 제10-0379946호, 등록일 2003년 3월 31일.[Special 8] Kim Han-seok, Kim Seong-soo, "Emergency call processing device and method using mobile communication network", Korean Registered Patent No. 10-0379946, registration date March 31, 2003.
[특 9] Ralph M. Toms, "System and method of simulating with respect to spheroid reference models using local surface coordinates", 미국 등록 특허 제7,428,476호, 등록일 2008년 9월 23일.[Special 9] Ralph M. Toms, "System and method of simulating with respect to spheroid reference models using local surface coordinates", US Patent No. 7,428,476, Registration Date September 23, 2008.
[특 10] Ziji Wang, Jiefeng Sun, Dong Liu and Jiqing Zhang, "Method and device for sharing position", 미국 공개 특허 제2020/0026418호, 공개일 2020년 1월 23일.[Special 10] Ziji Wang, Jiefeng Sun, Dong Liu and Jiqing Zhang, "Method and device for sharing position", US Patent Publication No. 2020/0026418, published on Jan. 23, 2020.
[특 11] Seth Jacob Pensack-Rinehart, Gavin Reaney, Yatin Chawathe, Nicholas Lee, Sascha Benjamin Brawer and Paul Messmer, "Providing indoor map data to a client computing device", 미국 공개 특허 제2015/0019625호, 공개일 2015년 1월 15일.[Special 11] Seth Jacob Pensack-Rinehart, Gavin Reaney, Yatin Chawathe, Nicholas Lee, Sascha Benjamin Brawer and Paul Messmer, "Providing indoor map data to a client computing device", US Patent Publication No. 2015/0019625, Publication Date 2015 January 15, 2011.
[특 12] Zhou Bailiang and Jonah Jones, "Floor selection on an interactive digital map", 미국 등록 특허 제8,464,181호, 등록일 2013년 6월 11일.[Special 12] Zhou Bailiang and Jonah Jones, "Floor selection on an interactive digital map", US Patent No. 8,464,181, Registration Date June 11, 2013.
[특 13] Zhou Bailiang and Jonah Jones, "Floor selection on an interactive digital map", 미국 등록 특허 제9,323,420호, 등록일 2016년 4월 26일.[Special 13] Zhou Bailiang and Jonah Jones, "Floor selection on an interactive digital map", US Patent No. 9,323,420, Registration Date April 26, 2016.
[특 14] 김동환, 권연희, 최정아, 김형찬, "실내지도 데이터베이스, 지도 서비스 제공장치 및 방법, 개방형 API를 이용한 실내지도 제공장치, 그리고 실내지도 제작장치 및 방법", 대한민국 등록 특허 제10-1312294호, 등록일 2013년 9월 23일.[Special 14] Kim Dong-hwan, Kwon Yeon-hee, Choi Jeong-ah, Kim Hyung-chan, "Indoor map database, map service providing device and method, indoor map providing device using open API, and indoor map production device and method", Republic of Korea Patent No. 10-1312294 , registration date September 23, 2013.
[특 15] 권경일, "지리상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스 및 데이터베이스의 데이터베이스", 대한민국 등록 특허 제10-2234723호, 등록일 2021년 3월 26일.[Special 15] Kwon Gyeong-il, "Method for specifying geographical location and database using the same, and database of databases", Republic of Korea Patent Registration No. 10-2234723, Registration Date March 26, 2021.
[특 16] 권경일, "실내를 포함하는 지구상의 위치를 특정하는 방법과 이를 이용하는 데이터베이스", 대한민국 등록 특허 제10-2308960호, 등록일 2021년 9월 29일.[Special 16] Kwon Gyeong-il, "Method for specifying a location on the earth including indoors and database using the same", Republic of Korea Patent Registration No. 10-2308960, Registration Date September 29, 2021.
[특 17] 권경일, "디지털 지도 기반의 온라인 플랫폼", 대한민국 등록 특허 제10-2344087호, 둥록일 2021년 12월 23일.[Special 17] Kyungil Kwon, "Online Platform Based on Digital Map", Korean Registered Patent No. 10-2344087, Dongrok-il, Dec. 23, 2021.
[비특허문헌][Non-Patent Literature]
[비특 1] Wikipedia, "World Geodetic System".[Non-Special 1] Wikipedia, "World Geodetic System".
[비특 2] 이성곤, "물리탐사 실무자를 위한 측지 좌표계와 지도 투영의 이해", 지구물리와 물리탐사(Geophysics and Geophysical Exploration), vol. 19, no. 4, 2016, pp. 236 ~ 248.[Special 2] Seonggon Lee, "Understanding of Geodetic Coordinate System and Map Projection for Practitioners of Physical Exploration", Geophysics and Geophysical Exploration, vol. 19, no. 4, 2016, p. 236 to 248.
[비특 3] National Geospatial-intelligence Agency (NGA), "Web Mercator map projection", NGA_SIG_0011_1.0.0_WEBMERC (2014).[Non-spec 3] National Geospatial-intelligence Agency (NGA), "Web Mercator map projection", NGA_SIG_0011_1.0.0_WEBMERC (2014).
[비특 4] Wikipedia, "Mercator projection".[Special 4] Wikipedia, "Mercator projection".
[비특 5] Wikipedia, "Web Mercator projection".[Special 5] Wikipedia, "Web Mercator projection".
[비특 6] Wikipedia, "Universal Transverse Mercator coordinate system".[Non-spec 6] Wikipedia, "Universal Transverse Mercator coordinate system".
[비특 7] 위키백과(https://ko.wikipedia.org/wiki/), "국가지점번호"[Non-Special 7] Wikipedia (https://en.wikipedia.org/wiki/), "Country branch number"
[비특 8] Wikipedia, "Google maps".[Non-Special 8] Wikipedia, "Google maps".
[비특 9] IETF(Internet Engineering Task Force), "The GeoJSON Specification: RFC 7946".[Non-spec 9] IETF (Internet Engineering Task Force), "The GeoJSON Specification: RFC 7946".
[비특 10] 위키백과, GeoJSON.[Non-Special 10] Wikipedia, GeoJSON.
지도 앱에 보이는 실내·외의 장소를 다른 사람과 용이하게 공유할 수 있는 방법을 제공하고자 한다.We want to provide a way to easily share indoor and outdoor places shown in the map app with others.
웹앱(web app)으로 실행되는 지도 앱(map app)에 보이는 실내·외의 장소(place)를 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)할 수 있다. 문자 메시지 몸체(text message body)는 선택된 장소에 해당하는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID)와 층(floor)을 포함하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함한다Indoor/outdoor places visible on the map app running as a web app can be sent as text messages and shared with the receiver. The text message body contains the geographic coordinates of the selected location and the map parameters, including the building ID and floor, as a search string. Contains the URL (Uniform Resource Locator) that contains
실내·외의 장소를 통합하여 문자 메시지로 보내서 송신인과 수신인이 동일한 지도 화면을 공유할 수 있으며, 다른 사람과 만나거나, 실종자를 구조하거나, 긴급 구조 요청을 하는 등 다양한 분야에서 유용하게 사용할 수 있다.The sender and receiver can share the same map screen by integrating indoor and outdoor locations and sending them as text messages. .
도 1은 측지 위도와 지심 위도의 차이를 이해하기 위한 개념도.1 is a conceptual diagram for understanding the difference between geodetic latitude and geocentric latitude.
도 2는 네이버 지도에서 마라도 남단으로 이동한 결과.Figure 2 is the result of moving to the southern tip of Marado on Naver Map.
도 3은 구글 지도에서 마라도 남단으로 이동한 결과.Figure 3 is the result of moving to the southern tip of Marado on Google Maps.
도 4는 도 3의 구글 지도의 주소창에 보이는 문자열을 구글의 크롬 브라우저에서 검색한 결과.FIG. 4 is a result of searching for the string shown in the address bar of the Google Map of FIG. 3 in Google's Chrome browser.
도 5는 메르카토르 도법의 개념도.5 is a conceptual diagram of a Mercator projection;
도 6은 메르카토르 도법으로 작성한 지도의 예.6 is an example of a map created by the Mercator projection.
도 7은 구면 메르카토르 도법을 이해하기 위한 개념도.7 is a conceptual diagram for understanding spherical Mercator projection;
도 8은 UTM 좌표계로 그린 세계 지도의 예.8 is an example of a world map drawn in the UTM coordinate system.
도 9는 UTM zone의 개념도.9 is a conceptual diagram of a UTM zone;
도 10은 국가지점번호 안내판의 예.10 is an example of a national branch number guide board.
도 11은 what3words 앱의 소개 화면의 일부.11 is a part of an introductory screen of what3words app.
도 12 내지 도 13은 what3words 앱의 실행 예.12 and 13 are examples of what3words app execution.
도 14는 구글의 실내 지도를 소개하는 시작 페이지 화면.14 is a start page screen introducing indoor maps of Google.
도 15 내지 도 16은 구글의 매디슨 스퀘어 가든의 실내 지도에서 6K층과 지하 2층의 실내 지도를 확대한 모습.15 and 16 are enlarged indoor maps of the 6K floor and the second basement floor in Google's indoor map of Madison Square Garden.
도 17은 종래 발명에서 사용하는 좌표계의 개념도.17 is a conceptual diagram of a coordinate system used in the prior art.
도 18은 종래 발명에서 층 정보의 개념을 예시하는 개념도.18 is a conceptual diagram illustrating the concept of layer information in the conventional invention.
도 19는 종래 발명의 디지털 지도 시스템의 구성을 보여주는 개념도.19 is a conceptual diagram showing the configuration of a digital map system according to the related art;
도 20은 종래 발명에서 디지털 지도의 뷰와 중앙의 건물의 예를 보여주는 도면.20 is a diagram showing a view of a digital map and an example of a building in the center in the prior art.
도 21은 종래 발명의 실시예에서 레이어의 구성을 예시하는 도면.21 is a diagram illustrating the configuration of layers in an embodiment of the prior art.
도 22는 종래 발명에서 지도 앱의 알고리즘을 보여주는 순서도.22 is a flow chart showing an algorithm of a map app in the prior art.
도 23은 종래 발명의 실시예에서 평면도 표시 서브루틴의 순서도.23 is a flowchart of a plan view display subroutine in an embodiment of the prior art;
도 24는 미디어 쿼리를 이용하여 지도 앱의 랜딩 페이지(landing page)를 달리하는 과정을 예시하는 개념도.24 is a conceptual diagram illustrating a process of changing a landing page of a map app using a media query.
도 25는 디지털 지도의 지도 화면의 중심에 계족산 장동산림욕장의 입구가 오도록 한 예.25 is an example in which the entrance of Jangdong Forest Park in Mt. Gyejok is at the center of the map screen of the digital map.
도 26은 도 25에 보이는 컨트롤 창을 확대한 그림.26 is an enlarged view of the control window shown in FIG. 25;
도 27은 본 발명의 지도 객체의 자바스크립트 코드.27 is JavaScript code of the map object of the present invention.
도 28은 본 발명의 제1 실시예에서 기본 지도 매개변수와 시작 지도 매개변수를 정의하는 자바스크립트 코드.28 is a JavaScript code for defining a basic map parameter and a start map parameter in the first embodiment of the present invention.
도 29는 지도 앱을 실행하여 초기 화면이 표시되는 알고리즘을 예시하는 순서도.29 is a flowchart illustrating an algorithm for displaying an initial screen by executing a map app;
도 30은 목표 지도 매개변수를 지정하는 자바스크립트 코드의 예.30 is an example of JavaScript code specifying target map parameters.
도 31은 본 발명의 제1 실시예에서 지도 앱의 초기 화면을 보여주는 그림.31 is a diagram showing an initial screen of a map app in the first embodiment of the present invention.
도 32는 시작 지도 매개변수를 저장하는 알고리즘의 순서도.32 is a flowchart of an algorithm for storing starting map parameters.
도 33은 지도 앱의 메뉴를 설명하는 도면.33 is a diagram for explaining a menu of a map app;
도 34는 시작 지도 매개변수를 로컬 스토리지에 저장한 이후에 다시 지도 앱을 실행한 경우의 초기 화면.34 is an initial screen when the map app is executed again after saving the starting map parameters to local storage.
도 35는 본 발명의 제2 실시예에서 송신인이 문자 메시지를 발신하는 단계의 알고리즘을 예시하는 순서도.35 is a flow chart illustrating an algorithm of the step of sending a text message by the sender in the second embodiment of the present invention.
도 36은 '화면을 문자 메시지로 보내기' 버튼에 연결되어 있는 이벤트 리스너(event listener)의 예.36 is an example of an event listener connected to a 'send screen as text message' button;
도 37 내지 도 39는 스마트폰에서 문자 메시지로 지도 화면을 보내는 실시예.37 to 39 are examples of sending a map screen by text message from a smartphone.
도 40은 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 알고리즘을 보여주는 순서도.40 is a flow chart showing an algorithm for selecting a received text message and executing a map app.
도 41은 URL에서 지도 매개변수를 추출하는 자바스크립트 코드의 예.41 is an example of JavaScript code for extracting map parameters from a URL.
도 42는 본 발명의 제3 실시예에서 기기의 종류와 화면 모드에 따라서 랜딩 페이지를 달리하는 알고리즘을 보여주는 순서도.42 is a flowchart showing an algorithm for differentiating a landing page according to a type of device and a screen mode in the third embodiment of the present invention.
도 43은 랜딩 페이지에서 디지털 지도의 초기 화면을 표시하는 알고리즘을 보여주는 순서도.43 is a flow chart showing an algorithm for displaying an initial screen of a digital map on a landing page.
도 44는 본 발명의 제5 실시예에서 지도 앱의 화면에 실내 지도가 보이는 예.44 is an example of an indoor map displayed on the screen of the map app in the fifth embodiment of the present invention.
도 45는 본 발명의 제5 실시예에서 지도 앱의 초기 화면을 표시하는 알고리즘을 보여주는 순서도.45 is a flowchart showing an algorithm for displaying an initial screen of a map app in a fifth embodiment of the present invention.
도 46은 초기 화면에 실내 지도가 보이는 실시예에서 검색 범위를 예시하는 개념도.46 is a conceptual diagram illustrating a search range in an embodiment in which an indoor map is displayed on an initial screen;
도 47은 본 발명의 제5 실시예에서 실내 위치를 시작 장소로 등록하여 초기 화면에 표시되도록 한 예.47 is an example of registering an indoor location as a starting place and displaying it on the initial screen in the fifth embodiment of the present invention.
도 48 내지 도 50은 제5 실시예의 알고리즘이 실패하는 사례.48 to 50 show cases in which the algorithm of the fifth embodiment fails.
도 51은 제5 실시예의 알고리즘이 실패한 이유를 설명하기 위한 개념도.51 is a conceptual diagram for explaining why the algorithm of the fifth embodiment fails.
도 52는 본 발명의 제6 실시예에서 시작 지도 매개변수를 저장하는 알고리즘을 보여주는 순서도.52 is a flow chart showing an algorithm for storing starting map parameters in the sixth embodiment of the present invention;
도 53은 초기 화면에 표시된 장소가 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계의 알고리즘을 보여주는 순서도.53 is a flowchart showing an algorithm of a step of displaying an initial screen so that a place displayed on the initial screen matches a target map parameter;
도 54는 본 발명의 제7 실시예에서 실내·외의 장소를 문자 메시지로 보내는 알고리즘을 보여주는 순서도.54 is a flow chart showing an algorithm for sending text messages to indoor/outdoor places in the seventh embodiment of the present invention.
도 55는 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하여 세션 스토리지에 저장하는 자바스크립트 코드의 예.55 is an example of JavaScript code for extracting map parameters from a search string included in a URL and storing them in session storage;
도 56은 지도 매개변수에서 지도 매개변수 객체를 생성하는 자바스크립트 코드의 예.56 is an example of JavaScript code that creates a map parameter object from map parameters.
도 57은 지도 앱이 PWA로 스마트폰에 설치된 모습.57 shows a map app installed on a smartphone as a PWA.
도 58은 본 발명의 지도 앱의 메뉴 버튼의 예.58 is an example of a menu button of a map app of the present invention.
도 59는 GPS 좌표를 문자 메시지로 보내는 메뉴를 실행하는 스마트폰 화면.59 is a smartphone screen executing a menu for sending GPS coordinates as a text message.
도 60 내지 도 61은 GPS 좌표를 문자 메시지로 보내는 알고리즘을 구현한 자바스크립트 코드의 일부.60 to 61 are parts of JavaScript code that implements an algorithm for sending GPS coordinates as text messages.
도 62 내지 도 63은 GPS 좌표를 문자 메시지로 보낸 스마트폰 화면.62 and 63 are smartphone screens that send GPS coordinates as text messages.
도 64는 본 발명의 제8 실시예에서 GPS 좌표를 문자 메시지로 보내는 알고리즘을 보여주는 순서도.64 is a flowchart showing an algorithm for sending GPS coordinates as a text message in the eighth embodiment of the present invention.
도 65는 문자 메시지를 수신하는 기기가 문자 메시지 서버인 전형적인 경우를 예시하는 개념도.65 is a conceptual diagram illustrating a typical case where the device receiving the text message is a text message server.
도 66은 본 발명의 제9 실시예에서 긴급 연락 정보를 등록하는 단계의 알고리즘을 보여주는 순서도.66 is a flowchart showing an algorithm of the step of registering emergency contact information in the ninth embodiment of the present invention.
도 67 내지 도 68은 긴급 연락 정보를 등록하는 스마트폰 화면의 예.67 to 68 are examples of smartphone screens for registering emergency contact information.
도 69는 본 발명의 제9 실시예에서 긴급 문자 메시지를 작성하는 자바스크립트 코드의 예.69 is an example of JavaScript code for creating an urgent text message in the ninth embodiment of the present invention.
도 70은 본 발명의 제9 실시예에서 발송된 긴급 문자 메시지의 예.70 is an example of an urgent text message sent in the ninth embodiment of the present invention.
도 71은 본 발명의 제10 실시예에서 자동적으로 문자 메시지를 발송하는 단계의 알고리즘을 보여주는 순서도.71 is a flow chart showing an algorithm of the step of automatically sending a text message in the tenth embodiment of the present invention.
[실시예 7][Example 7]
제1 내지 제6 실시예의 발명들에 사용된 기술을 사용하면 실외 지도나 실내 지도를 문자 메시지로 보내서 수신인과 공유할 수 있다. 즉, 본 발명의 제7 실시예는 지도 앱(map app)에 보이는 실내·외의 장소(place)를 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)하는 방법에 관한 발명이며, 송신인이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.Using the technology used in the inventions of the first to sixth embodiments, an outdoor map or an indoor map can be sent as a text message and shared with a recipient. That is, the seventh embodiment of the present invention relates to a method for sharing an indoor/outdoor place visible on a map app with a receiver by sending a text message, It consists of a sender sending a text message and a recipient selecting a received text message and executing a map app.
도 54는 송신인이 문자 메시지를 보내는 단계의 알고리즘을 보여주는 순서도이며, 송신인이 지도 앱과의 상호 작용을 통하여 수신인의 기기에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이게 할 장소를 선택하는 단계, 송신인이 선택된 장소를 문자 메시지로 보내는 메뉴를 실행하는 단계, 지도 앱이 선택된 장소에 해당하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계, 송신인이 수신인을 선택하고 문자 메시지를 발송하는 단계를 포함한다.54 is a flow chart showing the algorithm of the sender sending a text message, and the sender selecting a place to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app. , The sender executes a menu to send the selected place as a text message, and the map app includes a URL (Uniform Resource Locator) including map parameters corresponding to the selected place as a search string. and creating a text message body for sending the text message, selecting a recipient by the sender and sending the text message.
수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는 수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는(launch) 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하는(parse) 단계, 지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함한다.The step in which the recipient selects the received text message to launch the map app, the step in which the recipient selects the received text message to launch the map app that runs as a web app, and the map app launches the map from the search string included in the URL A step of extracting parameters (parse), and a step of displaying the initial screen so that places visible on the initial screen of the map app match the extracted map parameters.
선택된 장소에 해당하는 지도 매개변수는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID)와 층(floor)을 포함하며, 지도 영역(map area)의 줌(zoom)과 회전(rotation)도 포함하는 것이 바람직하다. Map parameters corresponding to the selected place include geographic coordinates, building ID and floor, as well as zoom and rotation of the map area. It is desirable to do
건물 아이디(building ID)는 중앙의 건물(building at view center)이 존재하는 경우에는 1 이상의 자연수(natural number)로 주어지고, 중앙의 건물이 존재하지 않는 경우에는 자연수가 아닌 숫자로 주어진다. 예를 들어 -1로 주어질 수 있다.The building ID is given as a natural number of 1 or more when a building at view center exists, and is given as a number other than a natural number when the building at view center does not exist. For example, it can be given as -1.
층(floor)은 중앙의 건물이 존재하지 않는 경우에는 0으로 주어지고, 중앙의 건물이 있고 실내 지도(indoor map)가 표시되는 경우에는 정수(integer)로 주어지며, 중앙의 건물이 존재하지만 실내 지도가 표시되지 않는 경우에는 정수가 아닌 숫자로 주어진다. 예를 들어 Infinity로 주어질 수 있다.The floor is given as 0 when the central building does not exist, and given as an integer when there is a central building and an indoor map is displayed, and the central building exists but indoors If the map is not displayed, it is given as a non-integer number. For example, it can be given as Infinity.
도 55는 URL에 포함된 검색 문자열(window.location.search)에서 지도 매개변수를 추출(parsing)하여 세션 스토리지에 저장하는 자바스크립트 코드이며, 인덱스 페이지(index.html)의 일부이다. 검색 문자열에서 콜론(":")을 모두 앰퍼샌드("&")로 바꾼 뒤, 이 검색 문자열에서 searchParams라는 이름으로 URLSearchParams 객체를 생성한다. 이 객체가 빈 객체("")가 아니라면, 세션 스토리지(window.sessionStorage)를 새로 생성한다. 다음으로, searchParams에서 북향거리(northing), 동향거리(easting), 위도(latitude), 경도(longitude), 줌(zoom), 회전(rotation), 건물 아이디(building ID), 층(floor)을 읽어와서(access and read) 각각 northing, easting, latitude, longitude, zoom, rotation, bldID, floor라는 변수에 저장한다. searchParams에 대응하는 값이 있다면 변수에는 실제 값이 저장되고, 대응되는 값이 없다면 변수는 값이 없는(null) 빈 변수가 된다.55 is a JavaScript code for extracting (parsing) a map parameter from a search string (window.location.search) included in a URL and storing it in session storage, and is a part of an index page (index.html). After replacing all colons (":") with ampersands ("&") in the search string, create a URLSearchParams object named searchParams from this search string. If this object is not an empty object (""), a new session storage (window.sessionStorage) is created. Next, read northing, easting, latitude, longitude, zoom, rotation, building ID, and floor from searchParams. Access and read are stored in variables called northing, easting, latitude, longitude, zoom, rotation, bldID, and floor, respectively. If there is a value corresponding to searchParams, the actual value is stored in the variable, and if there is no corresponding value, the variable becomes an empty variable with no value (null).
마지막으로 이 8개의 변수로부터 sessionMapParameters라는 이름의 지도 매개변수 객체(mapParameters object)를 생성한 뒤 세션 스토리지에 저장한다. sessionMapParameters를 세션 스토리지에 저장하기 위해서는 먼저 문자열로 변환하여야 한다. 이후에는 기기의 종류와 화면 모드를 판단하여 대응하는 랜딩 페이지가 시작된다.Finally, a mapParameters object named sessionMapParameters is created from these eight variables and stored in the session storage. To store sessionMapParameters in session storage, you must first convert them into strings. After that, the corresponding landing page is started by determining the device type and screen mode.
도 56은 지도 매개변수 객체를 생성하는 자바스크립트 코드이다. 지도 매개변수로 전달된 북향거리, 동향거리, 위도, 경도, 줌, 회전, 건물 아이디와 층은 각각 __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, __floor라는 이름을 가지는 내부 변수에 저장된다. 북향거리와 동향거리가 모두 유효한 값을 가지고 있다면(4행), 북향거리와 동향거리로부터 위도와 경도를 계산하여(6행, 8행) 위치 객체(location object)로 저장한다(10행). 만약 북향거리와 동향거리 중 어느 하나라도 유효한 값을 가지고 있지 않다면, 위도와 경도가 모두 유효한 값을 가지고 있는지 조사한다. 위도와 경도가 모두 유효한 값을 가지고 있다면 이들을 위치 객체로 저장한다(11행). 만약, 위도와 경도 중 어느 하나라도 유효한 값을 가지고 있지 않다면, 위치 객체는 널(null, 없음)로 설정한다(12행). 위치 객체가 널이 아니라면(14행), 줌, 회전, 건물 아이디, 층을 각각 조사하여 값이 있으면 그 값으로 저장하고, 값이 없으면 기본 값을 사용한다(16 ~ 26행).56 is the JavaScript code for creating a map parameter object. The northbound distance, eastbound distance, latitude, longitude, zoom, rotation, building ID, and floor passed as map parameters are stored in internal variables named __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, and __floor, respectively. . If both northbound and eastbound distances have valid values (line 4), the latitude and longitude are calculated from the northbound and eastbound distances (lines 6 and 8) and stored as a location object (line 10). If either of the northbound and eastbound distances do not have valid values, check whether latitude and longitude both have valid values. If both latitude and longitude have valid values, save them as a location object (line 11). If neither latitude nor longitude has a valid value, the location object is set to null (line 12). If the location object is not null (line 14), zoom, rotation, building ID, and floor are investigated, and if there is a value, the value is saved. If there is no value, the default value is used (lines 16 to 26).
지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계는 추출된 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계, 미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계, 기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계, 랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계, 세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 지정하는 단계, 목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함한다.The step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters is the step of storing the extracted map parameters in session storage, using a media query Determining the device type and screen orientation, launching a landing page suitable for the device type and screen orientation, and storing the landing page in the session storage It includes getting map parameters, designating the map parameters retrieved from the session storage as target map parameters, and setting a map object to match the target map parameters.
이와 같은 방법에 의하여 URL에 포함된 검색 문자열에 북향거리와 동향거리가 포함되어 있거나, 위도와 경도가 포함되어 있다면 그 지리적인 좌표로 지도 앱이 시작된다. 만약 북향거리와 동향거리와 위도와 경도가 모두 포함되어 있다면 북향거리와 동향거리의 값을 사용한다. URL에 지리적인 좌표가 포함되어 있지 않다면, 로컬 스토리지에 저장된 시작 지도 매개변수로 지도 앱이 실행된다. 시작 지도 매개변수도 저장되어 있지 않다면 기본 지도 매개변수로 지도 앱이 실행된다.In this way, if the search string included in the URL includes distance north and east, or latitude and longitude, the map app is started with the geographical coordinates. If both northbound and eastbound distances and latitude and longitude are included, use the northbound and eastbound distance values. If the URL does not contain geographic coordinates, the Maps app is launched with the starting map parameters stored in local storage. If the starting map parameters are not also saved, the map app will be launched with the default map parameters.
건물 아이디와 층이 유효한 값이라면 실내 지도 상에서의 정확한 위치를 알려주며, 그렇지 않다면 실외라고 간주하여 디지털 지도의 초기 화면에 실외 지도만을 표시한다. 줌과 회전이 포함되어 있다면 송신인이 보낸 지도 화면이 수신인의 기기에서 그대로 재현이 되고, 그렇지 않다면 장소만 알려주게 된다If the building ID and floor are valid values, it informs the exact location on the indoor map. If not, it is regarded as outdoor and only the outdoor map is displayed on the initial screen of the digital map. If zoom and rotation are included, the map screen sent by the sender is reproduced on the recipient's device as it is, otherwise only the location is indicated.
이하 도 25 내지 도 71을 이용하여 본 발명의 실시예들을 상세하게 설명하기로 한다.Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 25 to 71 .
[실시예 1][Example 1]
장래 희망이 에드먼드 힐러리 경(Sir Edmund Hillary)과 같은 위대한 등반가인 소년이 최연소 에베레스트산 등정 기록을 세우겠다고 마음먹었다고 가정하자. 도 25는 디지털 지도의 뷰(view, map screen)의 중심에 대전시 대덕구에 위치한 계족산 장동산림욕장의 입구가 오도록 한 예이다. 이 계족산이 에베레스트 산이라고 가정한다면, 그 소년은 이런 식으로 에베레스트 산의 지도를 수시로 들여다보며 연구하고 등정 계획을 세울 것이다.Suppose the future hope is that a boy who is a great climber like Sir Edmund Hillary decides to become the youngest ever climber to climb Mount Everest. 25 is an example in which the entrance of Gyejok Mountain Jangdong Forest Park located in Daedeok-gu, Daejeon is located at the center of the view (map screen) of the digital map. Assuming that this Mt. Gyejok is Mt. Everest, the boy would look at the map of Mt. Everest from time to time in this way, study it, and make a plan to climb it.
도 25에 보이는 본 발명의 실시예의 디지털 지도는 웹앱(web app)으로 실행되며, 더욱 바람직하게는 프로그레시브 웹앱(PWA, Progressive Web App)으로 실행된다. 웹앱은 컨트롤 창(control pane)과 뷰를 가지고 있으며, 주소창(URL bar, address bar, location bar)을 가질 수 있다. 웹앱이라고 하더라도 주소창이 숨겨진 WebView를 사용할 수도 있으므로 웹앱에 주소창이 항상 노출되어 있는 것은 아니다.The digital map of the embodiment of the present invention shown in FIG. 25 is executed as a web app, more preferably as a Progressive Web App (PWA). A web app has a control pane and a view, and can have an address bar (URL bar, address bar, location bar). Even a web app can use a WebView that hides the address bar, so the address bar is not always exposed in a web app.
뷰(view)는 지도가 보여지는 지도 화면(map screen)으로 사각형의 모양을 가진다. 본 발명에서는 뷰와 지도 화면, 또는 더 간단하게 화면(screen)을 같은 의미로 사용하기로 한다. 또 지도 화면에 보여지는 실외 지도를 지도 영역(map area)이라고 부르기로 한다.A view is a map screen on which a map is displayed and has a rectangular shape. In the present invention, a view and a map screen, or more simply, a screen are used in the same sense. In addition, the outdoor map displayed on the map screen will be referred to as a map area.
컨트롤 창에는 (측지) 위도, 경도, 북향거리, 동향거리, 줌, 회전 등이 표시되고, 또 디지털 지도와 상호 작용할 수 있는 다양한 컨트롤 메뉴(control menu)를 가지고 있다. 도 26은 도 25의 컨트롤 창의 일부를 확대한 것이다. 컨트롤 창에는 수직 슬라이더(vertical slider)가 부착되어 있어서, 수직 슬라이더를 움직이면 컨트롤 창이 수직 방향으로 움직(scroll)이므로 다른 메뉴들이 나타나게 할 수 있다. The control window displays (geodetic) latitude, longitude, distance north, distance east, zoom, rotation, etc., and has various control menus to interact with the digital map. FIG. 26 is an enlarged view of a part of the control window of FIG. 25 . Since a vertical slider is attached to the control window, moving the vertical slider scrolls the control window in a vertical direction, so that different menus can be displayed.
지도 화면(map screen)에 보여지는 실외 지도, 즉 지도 영역(map area)이 변경되면 컨트롤 창에 표시되는 위도와 경도, 북향거리, 동향거리, 줌, 회전 등의 값도 실시간으로 다시 계산되어 표시된다. 컨트롤 창에 보이는 위도와 경도 또는 이와 상호변환이 가능한 북향거리와 동향거리는 정확하게는 뷰의 중심(view center)에 해당하는 지점의 지리적 좌표(geographic coordinates)이다. 본 발명의 실시예의 지도 앱(map app)에는 사용자들이 뷰의 중심이 정확히 어디인지 알 수 있도록 중심 마커(center marker)가 뷰에 부착되어 있다. 예를 들어 패닝(panning)을 하여 뷰에 보이는 지도 영역이 바뀌더라도 중심 마커는 항상 뷰의 중심에 고정되어 있다.When the outdoor map shown on the map screen, that is, the map area, is changed, the values such as latitude and longitude, northward distance, eastward distance, zoom, rotation, etc. displayed on the control window are recalculated and displayed in real time. do. The latitude and longitude shown in the control window, or the northward and eastward distances that can be converted to and from them, are precisely the geographic coordinates of the point corresponding to the view center. In the map app of the embodiment of the present invention, a center marker is attached to the view so that users can know exactly where the center of the view is. For example, even if the map area visible in the view changes due to panning, the center marker is always fixed at the center of the view.
가장 바람직한 북향거리와 동향거리는 수학식 18 내지 19와 같이 주어진다.The most desirable northward and eastward distances are given as Equations 18 to 19.
Figure PCTKR2022007997-appb-img-000018
Figure PCTKR2022007997-appb-img-000018
Figure PCTKR2022007997-appb-img-000019
Figure PCTKR2022007997-appb-img-000019
여기서 φ는 측지 위도이고, λ는 경도이며, R은 지구의 평균 반경인데, 그 값으로 6,378,137m를 사용할 수 있다. 또, N은 북향거리(northing)이며, E는 동향거리(easting)이다.where φ is the geodetic latitude, λ is the longitude, and R is the Earth's mean radius, for which 6,378,137 m can be used. Also, N is northing and E is easting.
뷰에 보이는 실외 지도의 범위를 뷰 범위(view extent)라고 지칭한다. 뷰 범위는 지도 영역의 위도와 경도의 최솟값과 최댓값으로 특정할 수 있다. 그런데 이보다는 지도 영역의 중심의 위도와 경도의 쌍(pair), 또는 북향거리와 동향거리의 쌍에 더하여 줌(zoom)으로 특정하는 것이 더 일반적이다. 즉, 뷰 범위는 지도 영역의 중심의 지리적인 좌표와 줌으로 표시할 수도 있고, 지리적인 좌표의 최솟값과 최댓값들로 표시할 수도 있다. 또, 디지털 지도의 줌 대신에 지도의 해상도(resolution)를 특정할 수도 있다. 지도의 해상도란 지도 화면의 한 픽셀(pixel)이 얼마만한 지리적인 좌표의 간격에 대응하는지를 의미한다.The range of the outdoor map visible in the view is referred to as a view extent. The view range can be specified as the minimum and maximum values of the latitude and longitude of the map area. However, it is more common to specify by zoom in addition to a pair of latitude and longitude of the center of the map area, or a pair of distance north and east. That is, the view range may be displayed with the geographical coordinates and zoom of the center of the map area, or with the minimum and maximum values of the geographical coordinates. Also, the resolution of the map may be specified instead of the zoom of the digital map. The resolution of a map means how many geographical coordinate intervals one pixel on the map screen corresponds to.
종이에 인쇄된 지도와는 다르게 스마트폰에서는 두 손가락을 이용하여 디지털 지도를 회전시킬 수 있고(pinch rotate), 도 25의 오른쪽 하단에 보이는 다이얼(dial)을 이용하여 지도를 회전시킬 수도 있다. 따라서 뷰에 보이는 실외 지도는 뷰의 중심의 지리적인 좌표(geographic coordinates), 줌(zoom), 회전(rotation)의 세가지 값을 모두 특정하면 완전하게 결정된다.Unlike a map printed on paper, a digital map can be rotated using two fingers on a smartphone (pinch rotate), and a map can be rotated using a dial shown in the lower right corner of FIG. 25 . Therefore, the outdoor map shown in the view is completely determined by specifying all three values of the geographic coordinates of the center of the view, zoom, and rotation.
위도와 경도의 쌍, 또는 이와 상호변환이 가능한 북향거리와 동향거리의 쌍은 지구상에서의 수평 방향의 위치를 나타낸다. 위도와 경도, 또는 위도와 경도에 고도를 더한 좌표를 지리적인 좌표(geographic coordinates)라고 한다. 본 발명에서는 수평 방향의 위치를 나타내는 지리적인 좌표를 위치(location)라고 지칭하겠다. 지도 영역(map area)을 특정하려면 지도 영역의 중심의 지리적인 좌표(geographic coordinates), 즉 위치(location)와 줌(zoom)과 회전(rotation)을 특정하여야 한다. 위치는 경도와 측지 위도의 쌍(pair), 즉 [경도, 위도]로 주어지거나, 경도 및 위도의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍, 즉 [동향거리, 북향거리]로 주어져야 한다. 대괄호([])는 자바스크립트에서 배열(array)을 나타낸다. 이들을 총합하여 지도 매개변수(map parameters)라고 지칭하겠다.A pair of latitude and longitude, or a pair of interconvertible north and east distances, indicates a horizontal location on the Earth. Latitude and longitude, or latitude and longitude plus altitude, are called geographic coordinates. In the present invention, geographical coordinates indicating a location in a horizontal direction will be referred to as a location. To specify a map area, you must specify the geographic coordinates of the center of the map area, that is, the location, zoom, and rotation. A location is given as a pair of longitude and geodetic latitude, i.e. [longitude, latitude], or a pair of easting and northing distances, i.e. [distance easting, that is interchangeable with a pair of longitude and latitude. , northbound distance]. Square brackets ([]) represent an array in JavaScript. We will collectively refer to these as map parameters.
뷰에 보이는 실외 지도, 즉 지도 영역(map area)에 대응하는 지도 매개변수를 뷰 지도 매개변수(view map parameters)라고 부르기로 한다. 뷰 지도 매개변수는 뷰 위치(view location) viewLocation과 뷰 줌(view zoom) viewZoom과 뷰 회전(view rotation) viewRotation을 포함하며, 뷰 위치는 뷰 중심의 경도와 위도의 배열([경도, 위도]), 또는 동향거리와 북향거리의 배열([동향거리, 북향거리])로 주어진다.Map parameters corresponding to an outdoor map visible in the view, that is, a map area, will be referred to as view map parameters. The view map parameters include the view location viewLocation, the view zoom viewZoom, and the view rotation viewRotation, where the view location is an array of longitude and latitude of the view center ([longitude, latitude]) , or as an array of Easting Distance and Northwarding Distance ([Easting Distance, Northward Distance]).
지도 사업자는 사용자가 디지털 지도를 시작할 때 맨 처음에 어느 지역의 지도를 보여주도록 할 것인가를 결정하여야 한다. 가장 일반적인 방법은 현재 위치의 지도를 보여주는 것이다. 스마트폰에서 구글 지도나 네이버 지도를 시작하면 GPS 신호로부터 위치를 파악하여 현재 위치의 지도를 보여준다.A map service provider must decide which region to display at the beginning when a user starts a digital map. The most common way is to show a map of your current location. When you start Google Maps or Naver Maps on your smartphone, the location is determined from the GPS signal and a map of the current location is displayed.
소년 등반가의 경우에는 디지털 지도를 시작할 때마다 도 25와 같은 화면이 보이도록 하고 싶을 것이다. 그러나 혼자서만 사용하는 디지털 지도가 아닌 이상, 도 21에서와 같이 지도의 시작 위치를 디지털 지도 프로그램 자체에 지정할 수는 없다.In the case of a boy climber, a screen like FIG. 25 may be displayed whenever a digital map is started. However, unless it is a digital map used only by one person, as shown in FIG. 21, the starting position of the map cannot be designated in the digital map program itself.
사실 디지털 지도의 시작 위치를 개인화(personalization)하는 것은 보편적인 수요가 있다. 어떤 기업이 자사의 홈페이지에 회사 위치를 안내하려는 목적으로 지도를 삽입한다면, 그 홈페이지에서는 언제나 그 회사의 위치를 보여주고 싶을 것이다. 또는 주말마다 매번 새로운 산으로 등산을 가는 등산객은 일주일 단위로 지도의 시작 화면에 보이는 지도 영역(map area)을 바꾸고 싶을 것이다.In fact, personalization of the starting location of a digital map is in universal demand. If a company inserts a map on its homepage to guide its location, the homepage will always want to show the location of the company. Or, a hiker going to a new mountain every weekend would want to change the map area displayed on the map's start screen on a weekly basis.
이 경우에 사용할 수 있는 한 방법은 로컬 스토리지(local storage)를 이용하는 것이다. 로컬 스토리지는 인터넷 브라우저(internet browser)가 반영구적으로 사용할 수 있는 메모리 공간(memory space)이라고 할 수 있다. 즉, 로컬 스토리지에 저장된 데이터는 일부러 해당 데이터를 지우기 전까지는 인터넷 브라우저를 지원하는 기기(device)에 존재한다. 기기의 일반적인 예는 PC나 스마트폰이 될 수 있다.One method that can be used in this case is to use local storage. Local storage can be referred to as a memory space that can be used semi-permanently by an internet browser. That is, data stored in the local storage exists in a device supporting an Internet browser until the corresponding data is intentionally deleted. A typical example of a device could be a PC or a smartphone.
전술한 바와 같이 도 25에 보이는 디지털 지도를 그대로 재현하기 위해서는 지리적인 좌표와 줌과 회전이 모두 같아야 한다. 도 25에서와 같이 장동산림욕장의 입구가 지도 영역의 정중앙에 오려면, 위도와 경도가 각각 36.40658543°과 127.43884349°로 주어져야 한다. 또, 계족산 전체가 한눈에 들어오게 하려면 줌이 13.5 정도인 것이 적당하다. 그리고 장동산림욕장으로 들어가는 도로가 정면으로 보이게 하려면 지도를 270° 회전시켜야 한다.As described above, in order to reproduce the digital map shown in FIG. 25 as it is, the geographical coordinates, zoom, and rotation must all be the same. As shown in FIG. 25, in order for the entrance of Jangdong Forest Park to come to the center of the map area, latitude and longitude should be given as 36.40658543° and 127.43884349°, respectively. In addition, a zoom level of 13.5 is appropriate for viewing the entire Mt. Gyejok at a glance. And to show the road leading to Jangdong Forest Park in front, the map must be rotated 270°.
도 27은 본 발명의 지도 객체(map object)의 자바스크립트 코드를 보여준다. 뷰 중심(view center)과 줌(zoom)을 직접 지정하는 대신에 목표 위치(goal location) goalLocation과 목표 줌(goal zoom) goalZoom이라는 매개 변수를 사용하여 간접적으로 지정한다. 목표 위치는 목표 경도(goal longitude) goalLon과 목표 위도(goal latitude) goalLat의 배열, 즉 [goalLon, goalLat]으로 주어진다. 또 지도를 회전시켜야 한다면 그 값은 목표 회전(goal rotation) goalRotation에 저장되어 있다. 목표 회전 goalRotation은 도(degree)의 단위로 설정하였지만, 오픈레이어(OpenLayers)는 라디안(radian)의 단위를 사용하므로 라디안으로 변환한 후에 그에 맞게 지도를 회전시킨다.27 shows the JavaScript code of the map object of the present invention. Instead of specifying the view center and zoom directly, they are specified indirectly using the parameters goal location goalLocation and goal zoom goalZoom. The goal location is given as an array of goal longitude goalLon and goal latitude goalLat, namely [goalLon, goalLat]. Also, if the map needs to be rotated, that value is stored in the goal rotation goalRotation. Goal Rotation The goalRotation is set in degrees, but since OpenLayers uses the unit of radians, convert it to radians and rotate the map accordingly.
지도 앱이 시작될 때 보이는 지도 화면(map screen)을 초기 화면(initial screen)이라고 부를 수 있다. 초기 화면이란 사용자 상호작용(user interaction)을 통하여 뷰 중심의 지리적인 좌표나 줌, 회전 등이 변경되기 이전의 지도 화면을 말한다. 디지털 지도의 초기 화면은 지도 객체의 설정(setting)을 통하여 정해진다.The map screen displayed when the map app starts can be called the initial screen. The initial screen refers to a map screen before changing geographic coordinates, zoom, rotation, etc. of the center of a view through user interaction. The initial screen of the digital map is determined through the setting of a map object.
도 28은 본 발명의 제1 실시예에서 기본 지도 매개변수(default map parameters)와 시작 지도 매개변수(start map parameters)를 정의하는 자바스크립트 코드를 보여준다. 본 발명의 제1 실시예에서 지도 매개변수(map parameters)는 지리적인 좌표와 줌과 회전을 포함하는데, 지리적인 좌표는 간단히 경도 λ와 위도 φ의 쌍(pair), 또는 경도와 위도의 배열 [λ, φ]로 주어진다. 기본 지도 매개변수는 기본 위도(default latitude) default_latitude와 기본 경도(default longitude) default_longitude와 기본 줌(default zoom) default_zoom과 기본 회전(default rotation) default_rotation으로 구성되며, 프로그램에서 정의된 기본값(default values)을 가지고 있다. 도 28에서 기본 위치는 광화문 세종대왕 동상의 위치이며, 기본 줌은 17.0이고, 기본 회전은 0°이다.28 shows JavaScript code defining default map parameters and start map parameters in the first embodiment of the present invention. [ λ, φ]. The default map parameters consist of default latitude default_latitude, default longitude default_longitude, default zoom default_zoom, and default rotation default_rotation. Have. 28, the basic position is the position of the statue of King Sejong the Great in Gwanghwamun, the basic zoom is 17.0, and the basic rotation is 0°.
한편, 시작 지도 매개변수(start map parameters)는 시작 위도(start latitude) start_latitude와 시작 경도(start longitude) start_longitude와 시작 줌(start zoom) start_zoom과 시작 회전(start rotation) start_rotation을 포함하며, 초기값(initial values)은 모두 '없음(null)'으로 되어 있다.On the other hand, the start map parameters include start latitude start_latitude, start longitude start_longitude, start zoom start_zoom, and start rotation start_rotation, and have an initial value ( initial values) are all set to 'null'.
지도 앱의 시작 시에 이 기본 지도 매개변수가 목표 지도 매개변수로 지정(assign)된다. 따라서 도 27의 코드가 실행되면 기본 지도 매개변수에 부합하도록 초기 화면이 표시된다. 한편, 지도의 시작 화면, 즉 초기 화면에 보이는 지도 영역을 개인화(personalization)하려면 뷰 지도 매개변수를 시작 지도 매개변수(start map parameters)로 저장할 수 있다. 시작 지도 매개변수는 시작 위치(start location) start_location, 시작 줌(start zoom) start_zoom, 시작 회전(start rotation) start_rotation을 포함한다. At the start of the map app, these default map parameters are assigned as target map parameters. Therefore, when the code of FIG. 27 is executed, the initial screen is displayed to match the basic map parameters. Meanwhile, in order to personalize a map start screen, that is, a map area displayed on the initial screen, view map parameters may be stored as start map parameters. The start map parameters include start location start_location, start zoom start_zoom, and start rotation start_rotation.
사용자가 지도 앱에서 '현재 화면을 시작 화면으로 저장(store current screen as start screen)'이라는 메뉴 버튼(menu button)을 누르면, 뷰 지도 매개변수를 시작 지도 매개변수로 로컬 스토리지(local storage)에 저장한다. 여기서 '뷰 지도 매개변수'란 스마트폰이나 컴퓨터와 같은 기기(device)가 있는 물리적인 장소의 지도 매개변수를 말하는 것이 아니라, 지도 앱의 뷰(view)에 보여지는 지도의 설정(setting)을 말한다. 예를 들어 대전시 '목척1길 21'에서 에베레스트 산의 지도를 보다가 '현재 화면을 시작 화면으로 저장' 버튼을 누르면 에베레스트 산의 지도 매개변수가 '시작 지도 매개변수'로 로컬 스토리지에 저장된다.When the user presses the menu button 'store current screen as start screen' in the Maps app, the view map parameters are saved to local storage as the starting map parameters. do. Here, 'view map parameters' do not refer to the map parameters of a physical place where a device such as a smartphone or computer is located, but rather the setting of the map displayed in the view of the map app. . For example, when viewing the map of Mount Everest at '21 Mokcheok 1-gil' in Daejeon City and clicking the 'Save current screen as start screen' button, the map parameters of Mount Everest are saved to the local storage as 'start map parameters'.
다음번에 지도 앱을 시작할 때, 지도 앱은 유효한 '시작 지도 매개변수'가 로컬 스토리지에 저장되어 있는지 확인한 후, 값이 저장되어 있으면 그 값들을 '목표 지도 매개변수(goal map parameters)'로 지정하여 디지털 지도의 시작 화면에 에베레스트 산이 보이도록 할 수 있다. 한편, 다음번에 디지털 지도를 시작할 때 '목척1길 21'이 보이도록 하고 싶다면, 지도 앱에서 지도 영역을 '목척1길 21'로 이동한 후 '현재 화면을 시작 화면으로 저장' 버튼을 누를 수도 있지만, 'GPS로 현재 위치 찾기(find current location using GPS)' 버튼을 먼저 눌러서 지도에 사용자의 위치가 보이도록 한 후, '현재 화면을 시작 화면으로 저장' 버튼을 누르면 더 편리하게 지정할 수 있다.The next time you start the Maps app, the Maps app checks to see if valid 'start map parameters' are stored in local storage, and if so, assigns them as 'goal map parameters'. You can make Mount Everest visible on the start screen of your digital map. On the other hand, if you want to show 'Mokcheok 1-gil 21' the next time you start the digital map, you can move the map area to 'Mokcheok 1-gil 21' in the map app and press the 'Save current screen as start screen' button. However, you can specify it more conveniently by pressing the 'find current location using GPS' button first to show the user's location on the map, and then pressing the 'save current screen as start screen' button.
로컬 스토리지에 값을 저장하려면 자바스크립트 객체(JavaScript object)의 형식을 이용하여 키(key)와 값(value)의 쌍(pair)을 사용하여야 하는데, 키는 문자열(string)로 주어져야 한다. 따라서 start_latitude라는 키(key)에 36.0이라는 값(value)을 부여하여 로컬 스토리지에 저장하려면 window.localStorage.setItem("start_latitude", 36.0)이라는 자바스크립트(JavaScript) 명령을 실행하면 된다. 그리고 이 값을 가져오려면 window.localStorage.getItem("start_latitude")이라는 명령을 실행하면 된다. 그런데 이와 같이 얻어진 값은 실수(real number)가 아니라 문자열(string)로 주어진다. 따라서 이를 실수로 변환하는 과정이 필요하다. 이를 모두 고려하면 다음과 같은 명령을 실행하면 된다.To store a value in local storage, a key-value pair must be used in the form of a JavaScript object, and the key must be given as a string. Therefore, if you want to give a value of 36.0 to a key called start_latitude and store it in local storage, you can execute the JavaScript command window.localStorage.setItem("start_latitude", 36.0). And to get this value, run the command window.localStorage.getItem("start_latitude"). However, the value obtained in this way is given as a string, not a real number. Therefore, a process of converting it to a real number is required. Taking all of this into account, you can run a command like this:
let start_latitude = parseFloat(window.localStorage.getItem("start_latitude"));let start_latitude = parseFloat(window.localStorage.getItem("start_latitude"));
이와 같은 명령을 실행하면 start_latitude라는 변수에 36.0이라는 값이 저장된다. 만약 건물 고유 번호(building identification number)나 층수(floor number)와 같이 정수(integer)로 주어지는 값들을 가져오려면 parseFloat() 명령 대신에 parseInt() 명령을 실행하면 된다.When this command is executed, the value of 36.0 is stored in a variable called start_latitude. If you want to retrieve values given as integers, such as building identification numbers or floor numbers, you can execute the parseInt() command instead of the parseFloat() command.
도 29는 시작 지도 매개변수를 저장한 이후에 디지털 지도를 실행하는 단계의 알고리즘을 보여주는 순서도이다. 사용자가 디지털 지도를 시작하면, 지도 앱은 로컬 스토리지에 저장된 시작 지도 매개변수가 있는지 확인한다. 저장된 시작 지도 매개변수가 있으면 시작 지도 매개변수를 가져와서 목표 지도 매개변수로 지정하고, 저장된 시작 지도 매개변수가 없으면 기본 지도 매개변수를 목표 지도 매개변수로 지정한다. 마지막으로 초기 화면의 지도 영역이 목표 지도 매개변수에 부합하도록 초기 화면을 표시한다.29 is a flow chart showing an algorithm of steps for executing a digital map after saving starting map parameters. When the user launches a digital map, the map app checks to see if the starting map parameters are stored in local storage. If there is a saved starting map parameter, the starting map parameter is retrieved and set as the target map parameter. If there is no saved starting map parameter, the default map parameter is specified as the target map parameter. Finally, the initial screen is displayed so that the map area of the initial screen matches the target map parameters.
도 30은 목표 지도 매개변수(goal map parameters)를 지정하는 자바스크립트 코드를 보여준다. start_latitude와 start_longitude라는 키(key)에 저장된 값이 모두 유효하다면(not null) 그 값들을 각각 goalLat과 goalLon으로 지정하고, start_zoom과 start_rotation이라는 키에 저장된 값도 각각 goalZoom과 goalRotation으로 지정한다. 두 값 중 어느 하나라도 유효하지 않다면(null), 기본 지도 매개변수를 목표 지도 매개변수로 지정한다. 결국, 로컬 스토리지에 유효한 시작 지도 매개변수가 저장되어 있으면 지도 앱이 시작 지도 매개변수로 시작하게 되며, 유효한 시작 지도 매개변수가 저장되어 있지 않으면 기본 지도 매개변수로 시작하게 된다.30 shows JavaScript code that specifies goal map parameters. If the values stored in the keys start_latitude and start_longitude are both valid (not null), those values are designated as goalLat and goalLon, respectively, and the values stored in the keys start_zoom and start_rotation are also designated as goalZoom and goalRotation, respectively. If either value is invalid (null), the base map parameter is set as the target map parameter. After all, if valid starting map parameters are stored in local storage, the Maps app will start with starting map parameters, otherwise it will start with default map parameters.
도 31은 본 발명의 제1 실시예에서 디지털 지도의 초기 화면(initial screen)을 보여주는 그림이다. 현재는 저장된 시작 지도 매개변수가 없으므로 초기 화면에는 기본 지도 매개변수에 부합하는 광화문 광장이 보여지고 있다.31 is a diagram showing an initial screen of a digital map in the first embodiment of the present invention. Currently, there are no stored starting map parameters, so the initial screen shows Gwanghwamun Square that matches the default map parameters.
도 32는 시작 지도 매개변수(start map parameters)를 저장하는 알고리즘을 보여주는 순서도이다. 시작 지도 매개변수를 저장하는 단계는 사용자가 지도 앱과의 상호 작용을 통하여 지도 앱의 초기 화면에 보이게 할 지도 영역을 선택하는 단계에서 시작한다. 32 is a flow chart showing an algorithm for storing start map parameters. The step of storing the starting map parameters begins with a step in which the user selects a map area to be displayed on the initial screen of the map app through interaction with the map app.
도 33은 웹앱(web app)으로 실행되는 지도 앱의 메인 화면(main screen)을 보여준다. 화면 왼쪽에는 컨트롤 창(control pane)이 있고, 오른쪽에는 뷰(view, map screen)가 있다. 뷰에 보이는 지도 영역(map area)은 뷰 지도 매개변수(view map parameters)로 특정된다. 뷰의 왼쪽 상단에는 줌을 증가시킬 수 있는 플러스(+) 버튼과 줌을 감소시킬 수 있는 마이너스(-) 버튼이 있다. 오른쪽 하단에는 지도를 회전시킬 수 있는 다이얼(dial)이 있다. 또 뷰에 보이는 지도에 마우스 커서(mouse cursor)를 가져간 뒤 마우스 왼쪽 버튼을 누르고 이동(drag)하면 지도 영역을 바꿀 수 있고, 마우스 휠(mouse wheel)을 돌려서 줌을 변경시킬 수도 있다. 이와 같은 방식으로 뷰에 보이는 지도 영역을 변경할 수 있다. 도 33에서 뷰 지도 매개변수(view map parameters)는 위도 36.40658543°, 경도 127.43884349°, 줌 17.0, 회전 277.0°이다.33 shows a main screen of a map app executed as a web app. There is a control pane on the left side of the screen, and a view (map screen) on the right side. The map area visible in the view is specified by view map parameters. At the top left of the view is a plus (+) button to increase zoom and a minus (-) button to decrease zoom. At the bottom right is a dial that lets you rotate the map. In addition, you can change the map area by placing the mouse cursor on the map shown in the view, pressing the left mouse button and dragging, and you can change the zoom by turning the mouse wheel. In this way, you can change the map area visible in the view. In FIG. 33 , the view map parameters are latitude 36.40658543°, longitude 127.43884349°, zoom 17.0, and rotation 277.0°.
사용자가 지도 앱과의 상호 작용을 통하여 지도 앱의 초기 화면에 보이게 할 지도 영역을 선택하는 단계를 완료하면, 선택된 지도 영역을 시작 지도 영역(start map area)으로 저장하는 메뉴를 실행한다. 도 33의 컨트롤 창에는 시작 지도 매개변수를 저장하는 메뉴 버튼(button for storing start map parameters)과 시작 지도 매개변수를 삭제하는 메뉴 버튼(button for erasing start map parameters)이 있다. 시작 지도 매개변수를 저장하는 메뉴 버튼의 이름은 '현재 화면을 시작 화면으로 저장'이라고 되어 있고, 시작 지도 매개변수를 삭제하는 메뉴 버튼의 이름은 '시작 화면 지우기'라고 표시되어 있다.When the user completes the step of selecting a map area to be displayed on the initial screen of the map app through interaction with the map app, a menu for saving the selected map area as a start map area is executed. The control window of FIG. 33 includes a menu button for storing start map parameters (button for storing start map parameters) and a menu button for erasing start map parameters (button for erasing start map parameters). The name of the menu button to save the start map parameters is 'Save current screen as start screen', and the name of the menu button to delete start map parameters is marked 'Clear start screen'.
시작 지도 매개변수를 저장하는 메뉴 버튼을 누르면, 선택된 지도 영역에 해당하는 지도 매개변수, 즉 뷰 지도 매개변수가 로컬 스토리지에 시작 지도 매개변수로 저장된다. 도 34는 시작 지도 매개변수를 저장한 이후에 지도 앱을 다시 시작한 초기 화면을 보여준다. 뷰에 보이는 지도 영역이 도 33의 지도 영역과 동일한 것을 알 수 있다.When the menu button for saving the starting map parameters is pressed, the map parameters corresponding to the selected map area, that is, the view map parameters are saved as the starting map parameters in the local storage. 34 shows the initial screen of restarting the map app after saving the starting map parameters. It can be seen that the map area visible in the view is the same as the map area of FIG. 33 .
그런데 시작 지도 매개변수를 로컬 스토리지에 저장하는 대신에 앱 서버(app server)에 저장하는 방법도 가능하다. 이 경우에는 물론 PC나 스마트폰과 같은 기기(device)가 인터넷에 연결되어 있어야 하고, 둘째로 사용자 로그인(user login)이 되어 있어야 한다. 이 경우에 시작 지도 매개변수를 로컬 스토리지에 저장할 것인지 앱 서버에 저장할 것인지 택일할 수도 있고, 먼저 로컬 스토리지에 저장하고, 추가적으로 앱 서버에 저장할 수도 있다. 그러나 가장 바람직한 방법은 먼저 로컬 스토리지에 저장한 다음에 앱 서버(app server)에 사용자 로그인(user login)이 되어 있는지 확인한 후, 사용자 로그인이 되어 있으면 앱 서버에도 시작 지도 매개변수를 저장하는 방법이다.However, instead of saving the starting map parameters to local storage, it is also possible to store them on the app server. In this case, of course, a device such as a PC or a smartphone must be connected to the Internet, and secondly, a user login must be performed. In this case, you can choose whether to store the starting map parameters in local storage or in the app server, or you can save them in the local storage first and additionally in the app server. However, the most desirable method is to first save it to local storage, then check if the user is logged in to the app server, and if so, save the start map parameters to the app server as well.
이 경우에 지도 앱을 실행하는 단계에서 먼저 앱 서버에 로그인이 되어 있는지 확인한 후, 로그인이 되어 있으면 앱 서버에 시작 지도 매개변수가 저장되어 있는지 확인한다. 앱 서버에 시작 지도 매개변수가 저장되어 있으면 그 시작 지도 매개변수를 목표 지도 매개변수로 지정한다. 만약 앱 서버에 시작 지도 매개변수가 저장되어 있지 않으면, 로컬 스토리지에 시작 지도 매개변수가 저장되어 있는지 확인한다. 로컬 스토리지에 유효한 값이 저장되어 있다면 그 시작 지도 매개변수를 목표 지도 매개변수로 지정한다. 앱 서버와 로컬 스토리지에 모두 값이 저장되어 있지 않다면, 기본 지도 매개변수를 목표 지도 매개변수로 지정한다.In this case, in the step of running the map app, first check if you are logged in to the app server, and if so, check if the starting map parameters are stored in the app server. If the starting map parameter is stored in the app server, the starting map parameter is designated as the target map parameter. If the starting map parameters are not stored in the app server, check if the starting map parameters are stored in the local storage. If valid values are stored in the local storage, the starting map parameter is designated as the target map parameter. If the value is not stored in both the app server and local storage, set the base map parameter as the target map parameter.
이와 같은 방법에 의하여 로컬 스토리지에 저장된 값이 지워졌다고 하더라도 앱 서버에 저장된 값을 이용하여 복원할 수 있다. 또, PC에서 시작 지도 매개변수를 저장했으면, 스마트폰에서도 변경된 시작 지도 매개변수로 지도 앱을 실행할 수 있다.Even if the value stored in the local storage is erased in this way, it can be restored using the value stored in the app server. In addition, if you have saved the starting map parameters on your PC, you can run the map app with the changed starting map parameters on your smartphone.
이와 같은 본 발명의 제1 실시예에 의하면 PC나 스마트폰으로 본 발명의 지도 서비스를 이용하는 사용자는 디지털 지도의 초기 화면에 보이는 지도 영역을 기기별로 개인화(personalization)할 수 있다.According to the first embodiment of the present invention, a user who uses the map service of the present invention with a PC or smart phone can personalize the map area displayed on the initial screen of the digital map for each device.
[실시예 2][Example 2]
소년 등반가가 주말에 장동산림욕장의 입구에서 친구와 만나서 같이 계족산 등반 훈련을 하기로 했다고 가정하자. 그렇다면, 약속 장소의 주소를 전화로 불러 주거나 문자 메시지로 보내줄 수도 있지만, 도 25에 보이는 디지털 지도를 직접 보내준다면 더 바람직할 것이다. 본 발명의 제2 실시예는 디지털 지도의 URL(Uniform Resource Locator)을 문자 메시지로 보내고, 수신인(receiver)이 수신된 문자 메시지를 선택하면 디지털 지도가 웹앱으로 시작되며, 지도 앱의 초기 화면에 송신인(sender)이 보낸 지도 영역이 보이도록 하는 방법에 관한 발명이다. 문자 메시지를 선택하는 행위는 마우스로 클릭(click)하거나 터치 모니터(touch monitor)에서 두드리는(tap) 행위를 모두 포함한다.Let's assume that a boy climber meets with a friend at the entrance of Jangdong Forest Park on the weekend to practice climbing Mt. Gyejok. If so, the address of the rendezvous may be called by phone or sent by text message, but it would be more desirable if the digital map shown in FIG. 25 is directly sent. The second embodiment of the present invention sends the URL (Uniform Resource Locator) of the digital map as a text message, and when the receiver selects the received text message, the digital map starts as a web app and is sent to the initial screen of the map app. It is an invention related to a method for making a map area sent by a sender visible. The act of selecting a text message includes both clicking with a mouse and tapping on a touch monitor.
실시예 1의 발명이 사용자(user)의 기기에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 개인화하는 방법이라면, 실시예 2의 발명은 문자 메시지를 수신한 수신인의 기기에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 일회적으로 개인화하는 방법이다. 구체적으로 본 발명의 제2 실시예는 웹앱(web app)으로 실행되는 디지털 지도(digital map)의 지도 화면(map screen, view)에 보이는 지도 영역(map area)을 수신인과 공유(share)하기 위하여 문자 메시지(text message)를 보내는 방법에 관한 발명이다. 이 실시예는 송신인이 문자 메시지를 보내는 단계와, 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.If the invention of Example 1 is a method for personalizing the map area shown on the initial screen of a map app running as a web app on a user's device, the invention of Example 2 is executed as a web app on a recipient's device that receives a text message. This is a one-time personalization of the map area shown on the initial screen of the map app. Specifically, the second embodiment of the present invention is to share a map area shown on a map screen (view) of a digital map executed as a web app with a recipient. An invention relating to a method of sending a text message. This embodiment consists of sending a text message by the sender and executing a map app by selecting the received text message by the recipient.
도 35는 송신인이 문자 메시지를 보내는 단계의 알고리즘을 보여주는 순서도이다. 이 단계는 송신인이 지도 앱과의 상호 작용을 통하여 수신인의 기기(device)에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이게 할 지도 영역을 선택하는 단계에서 시작하며, 본 발명의 제1 실시예에서 지도 영역을 선택하는 단계와 동일하다.35 is a flowchart showing an algorithm of a sender sending a text message. This step starts with the sender selecting a map area to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app. The first embodiment of the present invention It is the same as the step of selecting a map area in .
지도 영역이 선택되면 송신인은 선택된 지도 영역을 문자 메시지로 보내는 메뉴를 실행한다. 지도 앱은 선택된 지도 영역에 해당하는 지리적인 좌표(geographic coordinates)와 줌(zoom)과 회전(rotation)을 포함하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 문자 메시지 창(text message window)에 작성한다. 문자 메시지의 작성이 완료되면 송신인이 수신인을 선택하고 문자 메시지를 발송한다.When a map area is selected, the sender executes a menu to send the selected map area as a text message. The Maps app provides a uniform resource URL (URL) that includes geographic coordinates corresponding to the selected map area and map parameters including zoom and rotation as a search string. The text message body including the Locator is written in the text message window. When the creation of the text message is completed, the sender selects a recipient and sends the text message.
도 36은 '화면을 문자 메시지로 보내기(send screen by text message)'라는 메뉴 버튼(btnSendScreenBySMS)에 연결되어 있는 이벤트 리스너(event listener)의 예를 보여주며, 그 구조는 다음과 같다.36 shows an example of an event listener connected to a menu button (btnSendScreenBySMS) called 'send screen by text message', and its structure is as follows.
btnSendScreenBySMS.addEventListener("click", function(){btnSendScreenBySMS.addEventListener("click", function(){
........
}, false);}, false);
즉, 메뉴 버튼을 선택(click)하면 무명함수(anonymous function)가 실행된다. 이 무명 함수의 내부에 있는 자바스크립트 코드는 지도 앱이 선택된 지도 영역에 해당하는 지도 매개변수를 SMS(Short Message Service, 단문 메시지 서비스)로 발송하는 소스 코드(source code)이다. 이와 같은 기능은 여러가지 방법으로 구현될 수 있으며, 도 36에 제시된 코드는 단지 하나의 예시일 뿐이다.That is, when the menu button is clicked, an anonymous function is executed. The JavaScript code inside this anonymous function is the source code for the map app to send SMS (Short Message Service) map parameters corresponding to the selected map area. Such a function can be implemented in various ways, and the code presented in FIG. 36 is just one example.
4행(line 4)에서 내용이 없는 URLSearchParams 객체 인스턴스(object instance)를 searchParams라는 이름으로 생성한다. 다음으로, 7행에서 뷰 중심(view center)의 북향거리(viewNorthing)를 북향거리(northing)라는 키(key)로 searchParams에 추가한다(append). 마찬가지로 뷰 중심의 동향거리(viewEasting)와 줌(viewZoom)과 회전(viewRotation)을 각각 동향거리(easting), 줌(zoom), 회전(rotation)이라는 키로 searchParams에 추가한다. 북향거리와 동향거리 대신에 위도와 경도를 사용해도 되지만, 거리의 단위로 표시하기 위하여 북향거리와 동향거리를 사용하였다.In line 4, a URLSearchParams object instance with no content is created with the name searchParams. Next, in line 7, the viewNorthing of the view center is appended to searchParams with a key of northing. Similarly, viewEasting, zoom, and viewRotation of the center of the view are added to searchParams with keys called easting, zoom, and rotation, respectively. Although latitude and longitude may be used instead of distances north and east, distances north and east were used to indicate distance units.
이렇게 준비된 searchParams는 자바스크립트 객체(JavaScript object)이다. 이 자바스크립트 객체를 toString()이라는 메서드(method)를 사용해서 문자열(string)로 변환한다. 도 33에 보이는 지도 영역에 대하여 이렇게 변환된 문자열은 다음과 같이 주어진다.The prepared searchParams are JavaScript objects. Convert this JavaScript object to a string using the toString() method. For the map area shown in FIG. 33, the converted character string is given as follows.
northing=14071516.723&easting=27544298.950&zoom=17.0&rotation=277.0northing=14071516.723&easting=27544298.950&zoom=17.0&rotation=277.0
여기에 포함된 앰퍼샌드(ampersand, &)는 '그리고(and)'를 뜻한다. 그런데 이 앰퍼샌드를 포함한 URL을 문자 메시지 몸체(text message body)에 추가하는 과정에서 문제가 발생할 수 있다. 구체적으로 어디에서 어디까지가 문자 메시지의 몸체인지 프로그램이 혼동할 수 있다. 이러한 문제를 회피하기 위하여 replace(/&/g, ':')라는 메서드를 사용하여 앰퍼샌드(&)를 모두 콜론(:)으로 변경한다. 많은 기호들 중에서 콜론을 선택한 이유는 순전히 이렇게 완성된 문자열이 보기에도 좋고 읽기에도 편하기 때문이다. 따라서 searchParams.toString().replace(/&/g, ':')라는 명령어는 다음과 같은 문자열을 반환한다.The ampersand (&) included here means 'and'. However, a problem may occur in the process of adding the URL including this ampersand to the text message body. Specifically, the program may be confused about where the body of the text message is. To avoid this problem, use the replace(/&/g, ':') method to change all ampersands (&) to colons (:). The reason why the colon was chosen among the many symbols is purely because the finished string looks good and is easy to read. Therefore, the command searchParams.toString().replace(/&/g, ':') returns the following string.
northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0
여기에 window.location.origin라는 명령어로 웹앱의 주소(https://map.digitalearth.land)를 가져오고, 검색 문자열(search string)을 표시하는 물음표(?)를 추가하면 완성된 문자열 stringTextarea는 다음과 같이 주어진다.Here, if you get the address of the web app (https://map.digitalearth.land) with the command window.location.origin and add a question mark (?) to display the search string, the completed string stringTextarea is is given as
stringTextarea = "https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0"stringTextarea = "https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0"
다음으로, 21행에서 문서(document)에 앵커 요소(anker element)를 linkSMS라는 이름으로 생성하고, 23행에서 문서에 자식 요소로 부착한다(appendChild). 25행에서 linkSMS의 href 속성으로 "sms:?body=" + stringTextarea를 지정한다. sms는 이 앵커 요소 linkSMS가 문자 메시지(text message)를 보내기 위한 요소라는 뜻이며, "body=" + stringTextarea는 이 문자 메시지의 메시지 몸체(message body)에 stringTextarea를 써넣으라는 뜻이다. 그리고 문자 메시지를 수신할 수신인(receiver)은 지정하지 않았는데, 이렇게 하면 스마트폰에서 수신인을 선택하라는 대화상자(prompt)가 나타난다.Next, in line 21, an anchor element named linkSMS is created in the document, and in line 23, it is attached to the document as a child element (appendChild). In line 25, "sms:?body=" + stringTextarea is specified as the href attribute of linkSMS. sms means that this anchor element linkSMS is an element for sending a text message, and "body=" + stringTextarea means to write stringTextarea in the message body of this text message. And the recipient to receive the text message is not specified, but if you do this, a dialog box prompting you to select a recipient appears on the smartphone.
인터넷 문서에서 가장 흔한 앵커 요소는 다른 웹 페이지(web page)로 연결되는 HTML 링크이다. 이 링크를 마우스(mouse)로 클릭(click)하거나 터치(touch)하면, 링크에 연결된 웹페이지로 이송(redirect)된다. 이와 같이 마우스 클릭이나 터치를 프로그램으로 대신할 수 있는 명령이 click()이다. 27행은 이렇게 생성된 앵커(linkSMS)를 프로그램적으로 클릭하여 문자 메시지(text message)를 발송한다.The most common anchor element in Internet documents is an HTML link to another web page. When this link is clicked or touched with a mouse, a web page connected to the link is redirected. In this way, click() is a command that can replace mouse clicks or touches with programs. Line 27 programmatically clicks the anchor (linkSMS) created in this way to send a text message.
도 37 내지 도 39는 스마트폰에서 문자 메시지로 지도 화면을 보내는 실시 예이다. 도 37은 발명자의 스마트폰에서 '화면을 문자 메시지로 보내기(send screen by text message)' 메뉴를 실행하는 화면이고, 도 38은 발명자 자신의 스마트폰으로 문자 메시지를 보낸 화면이며, 도 39는 수신된 문자 메시지를 선택(click)하여 지도 앱을 시작한 화면이다.37 to 39 are examples of sending map screens through text messages from a smartphone. 37 is a screen for executing the 'send screen by text message' menu on the inventor's smartphone, and FIG. 38 is a screen for sending a text message to the inventor's own smartphone, and FIG. 39 is a reception screen. This is the screen where you started the map app by clicking on the text message.
도 40은 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계의 알고리즘을 보여주는 순서도이다. 이 단계는 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 시작하는(launch) 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하는(parse) 단계, 지도 앱의 초기 화면에 보이는 지도 영역이 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함한다.40 is a flowchart illustrating an algorithm of a step of executing a map app by selecting a received text message by a recipient. In this step, the recipient selects the received text message to start the map app (launch), the map app extracts map parameters from the search string included in the URL (parse), and the map app appears on the initial screen of the app. and displaying an initial screen so that the map area conforms to the extracted map parameters.
가장 일반적인 기기(device)가 스마트폰이므로, 수신인이 스마트폰에 수신된 문자 메시지를 선택하면 문자 메시지에 포함된 URL(https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0)에 포함된 지도 앱(https://map.digitalearth.land)가 웹앱으로 시작된다. 웹앱에서 시작할 웹 페이지가 명시적으로 지정되어 있지 않으면, 브라우저는 index.html 페이지나 index.php 페이지를 찾아서 실행하게 된다. 도 41은 index.html 페이지에 포함된 자바스크립트 코드이다.Since the most common device is a smartphone, when the recipient selects a text message received on the smartphone, the URL included in the text message (https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom= The map app (https://map.digitalearth.land) included in 17.0:rotation=277.0) starts as a web app. If the web page to start in the web app is not explicitly specified, the browser will find the index.html page or the index.php page and execute it. 41 is JavaScript code included in the index.html page.
URL이 "https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0"로 주어질 때, window.location.search는 물음표 이하의 문자열로 주어진다.When the URL is given as "https://map.digitalearth.land?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0", window.location.search is given a string of question marks or less.
window.location.search = "?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0"window.location.search = "?northing=14071516.723:easting=27544298.950:zoom=17.0:rotation=277.0"
여기서 지도 매개변수를 추출하는 방법도 여러가지로 구현할 수 있지만, 가장 간단한 방법은 다시 한번 URLSearchParams를 이용하는 것이다. 이를 위해서 문자 메시지 전송 과정에서 앰퍼샌드(&) 대신에 사용되었던 콜론(:)을 다시 앰퍼샌드로 치환하여야 한다. window.location.search.replace(/:/g, '&')라는 명령을 실행하면, 다음과 같이 콜론을 모두 앰퍼샌드로 치환한다.Here, the method of extracting map parameters can be implemented in various ways, but the simplest method is to use URLSearchParams once again. To this end, the colon (:) used in place of the ampersand (&) in the text message transmission process must be replaced with an ampersand again. If you execute the command window.location.search.replace(/:/g, '&'), all colons are replaced with ampersands as follows.
window.location.search.replace(/:/g, '&') = "?northing=14071516.723&easting=27544298.950&zoom=17.0&rotation=277.0"window.location.search.replace(/:/g, '&') = "?northing=14071516.723&easting=27544298.950&zoom=17.0&rotation=277.0"
이렇게 치환된 문자열에서 searchParams라는 이름으로 URLSearchParams 객체를 생성한다. searchParams에서 get() 메서드를 사용하여 키(key)에 대응하는 값을 읽어온 뒤, 실수로 변환하면 지도 매개변수를 얻을 수 있다. 예를 들어 북향거리는 다음과 같이 얻을 수 있으며, 동향거리와 줌과 회전도 모두 마찬가지 방식으로 얻을 수 있다.A URLSearchParams object with the name of searchParams is created from the string replaced in this way. After reading the value corresponding to the key using the get() method in searchParams, you can get the map parameter by converting it by mistake. For example, the northbound distance can be obtained as follows, and the eastbound distance and zoom and rotation can all be obtained in the same way.
let northing = parseFloat(searchParams.get("northing"));let northing = parseFloat(searchParams.get("northing"));
[실시예 3][Example 3]
만약 지도 화면을 문자 메시지로 보내는 기기와 문자 메시지를 수신하는 기기가 같은 종류이고, 화면 모드(screen mode)도 동일하다면 이와 같은 코드로 충분하다. 그런데 PC에서 스마트폰으로 보내거나, 스마트폰에서 PC로 보내는 등 기기가 서로 동일하지 않을 수 있다. 또 스마트폰에서는 화면을 풍경 사진(landscape) 모드나 인물 사진(portrait) 모드로 사용할 수 있다. 이와 같은 경우에는 레이아웃(layout)이 다른 웹 페이지를 사용하는 것이 편리하다. 예를 들어 기기가 PC이면 랜딩 페이지(landing page)의 이름을 indexDesktopLandscape.html로 할 수 있다. 또, 기기가 스마트폰이면서 화면 모드가 인물 사진 모드이면 랜딩 페이지의 이름을 indexMobilePortrait.html로 할 수 있고, 풍경 사진 모드이면 랜딩 페이지의 이름을 indexMobileLandscape.html로 할 수 있다. 따라서 도 24에 예시한 바와 같이 인덱스 페이지(index.html)에서 기기의 종류와 화면 모드를 판단한 후, 적절한 랜딩 페이지로 이송(redirect)하는 과정이 필요하다.If the device that sends the map screen as a text message and the device that receives the text message are of the same type and have the same screen mode, a code like this is sufficient. However, the devices may not be the same, such as sending from a PC to a smartphone or from a smartphone to a PC. In addition, on smartphones, the screen can be used in landscape mode or portrait mode. In this case, it is convenient to use a web page with a different layout. For example, if the device is a PC, the landing page could be named indexDesktopLandscape.html. In addition, if the device is a smartphone and the screen mode is portrait mode, the name of the landing page can be indexMobilePortrait.html, and if the screen mode is landscape mode, the name of the landing page can be indexMobileLandscape.html. Therefore, as illustrated in FIG. 24, after determining the type of device and screen mode on the index page (index.html), it is necessary to redirect to an appropriate landing page.
그런데 HTML 문서(HTML document)에서는 다른 웹 페이지 간에 변수가 공유되지 않는다. 예를 들어 스마트폰에서 수신된 문자 메시지를 선택하여 인물 사진 모드로 지도 앱을 실행한다면, indexMobilePortrait.html 페이지가 실행되어야 하지만, index.html 페이지에서 추출된 지도 매개변수를 indexMobilePortrait.html 페이지에서는 볼 수 없다. 이와 같은 문제를 해결하기 위한 방법이 세션 스토리지(session storage)를 이용하는 것이다. 로컬 스토리지(local storage)와 세션 스토리지는 인터넷 표준에 정의된 것으로, 모든 인터넷 브라우저에서 사용할 수 있다.However, in an HTML document, variables are not shared between different web pages. For example, if you select a text message received from your smartphone and run the map app in portrait mode, the indexMobilePortrait.html page should be executed, but the map parameters extracted from the index.html page cannot be viewed in the indexMobilePortrait.html page. none. A method for solving such a problem is to use a session storage. Local storage and session storage are defined in Internet standards and can be used by all Internet browsers.
로컬 스토리지는 기기의 하드웨어에 키(key)와 값(value)의 쌍(pair)으로 변수를 저장하며, 일부러 지우기 전까지는 계속 사용할 수 있는 저장 방법이다. 반면에 세션 스토리지는 인터넷 브라우저가 실행되고 있는 동안에만 임시적으로 사용할 수 있는 저장 방법인데, 웹 페이지 간에 변수를 전달하기 위하여 사용된다. 세션 스토리지에 저장된 변수는 인터넷 브라우저를 종료하는 순간 모두 사라진다. 그러나 로컬 스토리지에 변수를 저장하는 방법과 세션 스토리지에 변수를 저장하는 방법은 사실상 동일하다고 할 수 있다. 예를 들어 'northing'이라는 키에 northing이라는 변수의 값을 로컬 스토리지와 세션 스토리지에 저장하는 방법은 각각 다음과 같다.Local storage is a storage method that stores variables as key-value pairs in the device's hardware and can be used continuously until intentionally deleted. On the other hand, session storage is a storage method that can be used temporarily only while the Internet browser is running, and is used to transfer variables between web pages. Variables stored in the session storage disappear as soon as the Internet browser is closed. However, storing variables in local storage and storing variables in session storage are virtually the same. For example, how to store the value of a variable called northing in a key called 'northing' in local storage and session storage is as follows.
window.localStorage.setItem('northing', northing);window.localStorage.setItem('northing', northing);
window.sessionStorage.setItem('northing', northing);window.sessionStorage.setItem('northing', northing);
또한, 저장된 값을 가져오는 방법은 각각 다음과 같다.In addition, the method of bringing the stored value is as follows.
let northing = parseFloat(window.localStorage.get('northing'));let northing = parseFloat(window.localStorage.get('northing'));
let northing = parseFloat(window.sessionStorage.get('northing'));let northing = parseFloat(window.sessionStorage.get('northing'));
이와 같은 세션 스토리지를 사용하여 기기의 종류와 화면 모드에 대응하는 알고리즘이 도 42에 도시되어 있다. 수신인이 수신된 문자 메시지를 선택하면 문자 메시지에 포함된 URL로 지도 앱이 시작된다. 인덱스 페이지(index.html)에 포함된 자바스크립트 코드는 URL에 포함된 location 객체(location object)에서 검색 문자열(search string)을 가져온다. 검색 문자열은 window.location.search로 구할 수 있다. 검색 문자열에서 다시 지도 매개변수를 추출(parsing)한 뒤, 추출된 매개변수를 세션 스토리지(session storage)에 세션 변수(session variables)로 저장한다.An algorithm corresponding to the type of device and screen mode using such session storage is shown in FIG. 42 . When the recipient selects the received text message, the Maps app is launched with the URL included in the text message. The JavaScript code contained in the index page (index.html) retrieves the search string from the location object contained in the URL. The search string can be obtained with window.location.search. After extracting (parsing) the map parameters from the search string again, the extracted parameters are stored as session variables in the session storage.
다음으로 지도 앱이 실행중인 기기의 종류(type)가 스마트폰인지 PC인지 판단하여, PC이면 PC용으로 만들어진 랜딩 페이지(landing page)인 indexDesktopLandscape.html로 시작한다. 기기의 종류가 스마트폰이면, 인물 사진 모드에서는 indexMobilePortrait.html로 시작할 수 있고, 풍경 사진 모드에서는 indexMobileLandscape.html로 시작할 수 있다.Next, it determines whether the type of device on which the map app is running is a smartphone or a PC, and if it is a PC, it starts with indexDesktopLandscape.html, a landing page designed for PC. If the device type is a smartphone, you can start with indexMobilePortrait.html for portrait mode and indexMobileLandscape.html for landscape mode.
기기의 종류와 화면 모드에 대응하는 랜딩 페이지를 시작한 이후에는 세션 스토리지에서 지도 매개변수를 가져오며, 인덱스 페이지(index.html)는 종료(close)한다. 마지막으로 초기 화면에 보이는 지도 영역이 지도 매개변수에 부합하도록 초기 화면을 표시한다.After starting the landing page corresponding to the device type and screen mode, map parameters are fetched from the session storage, and the index page (index.html) is closed. Finally, the initial screen is displayed so that the map area visible on the initial screen matches the map parameters.
웹앱으로 실행되는 지도 앱이 PWA이면 더 바람직하다는 사실, 지리적인 좌표를 경도와 측지 위도의 쌍으로 전송하는 대신에 경도와 측지 위도의 쌍과 상호변환이 가능한 동향거리와 북향거리의 쌍으로 보내는 것이 더 바람직하다는 사실 등은 실시예 1에서와 동일할 뿐만 아니라, 이후의 모든 실시예에서도 동일하다.The fact that a map app running as a web app would be preferable if it were a PWA, that instead of sending geographic coordinates as longitude and geodetic latitude pairs, it would send longitude and geodetic latitude pairs and interconvertible distance east and north distance pairs. The fact that it is more preferable is not only the same as in the first embodiment, but also the same in all the following embodiments.
[실시예 4][Example 4]
본 발명의 실시예 1은 지도 앱의 초기 화면을 개인화하는 방법에 관한 발명이고, 실시예 2 내지 3은 문자 메시지를 수신한 수신인의 기기에서 실행되는 지도 앱의 초기 화면을 일회적으로 개인화하는 방법에 관한 발명이다. 그러면 수신인이 지도 앱의 초기 화면을 개인화하였는데, 실시예 2 내지 3에서와 같은 문자 메시지를 받아서 선택했을 때 지도 앱의 초기 화면에 보이는 지도 영역을 어떻게 할 것인가의 문제가 있다. Embodiment 1 of the present invention relates to a method for personalizing the initial screen of a map app, and embodiments 2 and 3 are methods for one-time personalizing the initial screen of a map app executed on a device of a recipient who receives a text message. It is an invention about Then, when the recipient has personalized the initial screen of the map app, there is a problem of what to do with the map area displayed on the initial screen of the map app when a text message is received and selected as in Embodiments 2 and 3.
도 43은 랜딩 페이지(landing page)에서 디지털 지도의 초기 화면을 표시하는 알고리즘을 보여주는 순서도이다. indexDesktopLandscape.html이나 indexMobilePortrait.html, indexMobileLandscape.html 등 랜딩 페이지가 결정되면, 지도 앱은 먼저 세션 스토리지에 유효한 지도 매개변수가 저장되어 있는지 확인한다. 유효한 지도 매개변수가 저장되어 있으면 세션 스토리지에서 지도 매개변수를 가져와서 이를 목표 지도 매개변수로 지정한다. 세션 스토리지에 유효한 지도 매개변수가 저장되어 있지 않으면, 이번에는 로컬 스토리지에 유효한 시작 지도 매개변수가 저장되어 있는지 확인한다. 유효한 시작 지도 매개변수가 저장되어 있으면, 로컬 스토리지에서 시작 지도 매개변수를 가져와서 목표 지도 매개변수로 지정한다. 로컬 스토리지에 저장된 시작 지도 매개변수도 없으면 기본 지도 매개변수를 목표 지도 매개변수로 지정한다. 마지막으로 디지털 지도의 초기 화면에 보이는 지도 영역이 목표 지도 매개변수에 부합하도록 초기 화면을 표시한다.43 is a flowchart showing an algorithm for displaying an initial screen of a digital map on a landing page. When a landing page such as indexDesktopLandscape.html, indexMobilePortrait.html, or indexMobileLandscape.html is determined, the map app first checks whether valid map parameters are stored in the session storage. If valid map parameters are stored, get the map parameters from session storage and set them as target map parameters. If valid map parameters are not stored in session storage, this time we check if valid starting map parameters are stored in local storage. If a valid starting map parameter is stored, the starting map parameter is retrieved from local storage and assigned as the target map parameter. If there are no starting map parameters stored in local storage, the base map parameters are set as target map parameters. Finally, the initial screen is displayed so that the map area visible on the initial screen of the digital map matches the target map parameters.
결과적으로 문자 메시지를 클릭하면, 문자 메시지의 URL에 포함된 검색 문자열에 부합하는 지도가 보여지고, 일반적인 방법으로 지도 앱을 시작하면 개인화된 초기 화면이 있으면 그 화면으로 시작하며, 개인화된 초기 화면이 없으면 기본 지도 화면으로 시작된다. 따라서 실시예 1의 발명과 실시예 2 내지 3의 발명이 동시에 구현될 수 있다.As a result, when you click on the text message, the map matching the search string contained in the URL of the text message is displayed, and when you start the Maps app in the usual way, it starts with the personalized home screen, if there is one, and the personalized home screen is displayed. If not, it starts with the default map screen. Therefore, the invention of Embodiment 1 and the invention of Embodiments 2 to 3 can be implemented at the same time.
[실시예 5][Example 5]
[특 15] 내지 [특 17]에 개시된 종래 발명에 의하면 실외 지도 상의 올바른 위치에 실내 지도가 표시된다. 예를 들어 백화점이나 쇼핑몰의 실내 지도가 등록되어 있다면, 실내 지도 상의 각 상점의 위치에 상호(business name)가 표시되고, 그 상호를 선택하면 홈 페이지나 온라인 쇼핑몰이 연결되도록 할 수도 있다.According to the prior art disclosed in [Special 15] to [Special 17], an indoor map is displayed at the correct location on the outdoor map. For example, if an indoor map of a department store or shopping mall is registered, a business name is displayed at the location of each store on the indoor map, and when the business name is selected, the homepage or online shopping mall may be connected.
쇼핑몰에서 상점을 운영하는 상인이 상호에 온라인 쇼핑몰을 연결해 놓았다면, 디지털 지도를 시작할 때마다 온라인 쇼핑몰에서 새로운 주문이나 고객 후기 등이 있는지 확인하고 싶을 것이다. 따라서 이와 같은 경우에는 실내를 포함하여 디지털 지도의 시작 위치를 개인화할 필요성이 있다.If a merchant who runs a store in a shopping mall has linked an online shopping mall to his/her business name, every time the digital map is started, he/she will want to check the online shopping mall for new orders or customer reviews. Therefore, in this case, there is a need to personalize the starting location of the digital map, including indoors.
본 발명에서는 실외 지도 상에서의 위치와 실내 지도 상에서의 위치를 통합적으로 장소(place)라고 지칭하기로 한다. 장소는 경도와 측지 위도의 쌍이나 경도 및 측지 위도의 쌍과 상호변환이 가능한 동향거리와 북향거리의 쌍으로 주어지는 지리적인 좌표(geographic coordinates)와 건물 내에서의 층(floor)을 포함하는 개념이다. 디지털 지도의 줌과 회전은 장소의 개념에는 포함하지 않기로 한다. 즉, 본 발명의 제5 실시예는 지도 앱의 초기 화면에 보이는 실내·외의 장소를 개인화하기 위한 발명이다.In the present invention, a location on an outdoor map and a location on an indoor map are collectively referred to as a place. A place is a concept that includes geographic coordinates given as a pair of longitude and geodetic latitude, or a pair of longitude and geodetic latitude, and a pair of interconvertible distances east and north, and a floor within a building. . The zoom and rotation of the digital map are not included in the concept of place. That is, the fifth embodiment of the present invention is an invention for personalizing indoor/outdoor places shown on the initial screen of a map app.
도 44는 출원인의 사무실이 있는 OK벤처타운 건물의 2층의 실내 지도를 보여준다. 이 장소가 지도 앱의 초기 화면에 보이도록 하려면 북향거리와 동향거리에 더하여 층(floor)을 지도 매개변수에 추가하여야 하며, 도 44의 지도 화면을 그대로 재현하려면 줌과 회전도 추가되어야 한다. 장소를 특정하는 지도 매개변수에 지리적인 좌표와 층만 포함되어 있다면, 지도 매개변수를 로컬 스토리지에 시작 지도 매개변수로 저장하는 과정에서 줌과 회전이 추가되며, 그 값은 기본 지도 매개변수에 포함된 줌과 회전의 값(예를 들어 zoom = 17 & rotation = 0)을 사용한다.44 shows an indoor map of the second floor of the OK Venture Town building where the applicant's office is located. In order for this place to be visible on the initial screen of the map app, a floor must be added to the map parameters in addition to the distance north and east, and zoom and rotation must be added to reproduce the map screen of FIG. 44 as it is. If the map parameters that specify a place contain only geographic coordinates and layers, then saving the map parameters to local storage as starting map parameters adds zoom and rotation, and those values are included in the base map parameters. Use values for zoom and rotation (e.g. zoom = 17 & rotation = 0).
도 45는 이와 같이 층을 포함하는 시작 지도 매개변수를 가지는 디지털 지도의 초기 화면을 표시하는 알고리즘을 보여주는 순서도이다. 본 발명의 제1 실시예에서와 동일하게, 사용자가 디지털 지도를 시작하면 지도 앱은 로컬스토리지에 저장된 시작 지도 매개변수가 있는지 확인한다. 저장된 시작 지도 매개변수가 있으면 시작 지도 매개변수를 가져와서 목표 지도 매개변수로 지정하고, 저장된 시작 지도 매개변수가 없으면 기본 지도 매개변수를 목표 지도 매개변수로 지정한다. 마지막으로 초기 화면에 보이는 장소(place)가 목표 지도 매개변수에 부합하도록 초기 화면을 표시한다.45 is a flowchart showing an algorithm for displaying an initial screen of a digital map having a starting map parameter including layers. As in the first embodiment of the present invention, when the user starts the digital map, the map app checks whether there are starting map parameters stored in the local storage. If there is a saved starting map parameter, the starting map parameter is retrieved and set as the target map parameter. If there is no saved starting map parameter, the default map parameter is specified as the target map parameter. Finally, the initial screen is displayed so that the place visible on the initial screen matches the target map parameters.
도 46은 실내를 포함하는 디지털 지도의 초기 화면에 보이는 장소, 즉 시작 장소(start place)를 개인화하는데 있어서 필요한 검색 범위(search area)를 설명하기 위한 개념도이다. 도 46에는 4채의 건물들의 외곽선이 표시되어 있다. 이 건물들은 그 건물들의 대표 지점(building center)이 뷰 범위(view extent)에 포함되는 건물들이다. 도 46에는 각 건물들의 대표 지점이 점(point)으로 표시되어 있다. 각 건물들의 대표 지점은 그 건물들의 외곽선을 나타내는 도형(geometry)의 도심(centroid)으로 정하는 것이 바람직하지만, 도형의 형상이 특이한 경우에는 도심과 별개로 건물 내의 한 점을 임의로 선택할 수 있다.46 is a conceptual diagram for explaining a search area necessary for personalizing a place visible on the initial screen of a digital map including indoors, that is, a start place. 46 shows the outlines of four buildings. These buildings are buildings whose building center is included in the view extent. In FIG. 46, representative points of each building are indicated by points. It is desirable to set the representative point of each building as the centroid of the geometry representing the outline of the building, but if the shape of the geometry is unique, a point within the building may be arbitrarily selected apart from the centroid.
지도 앱의 초기 화면에 보이는 장소가 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계는 다시 다음과 같은 여러 단계를 포함한다. 우선 목표 지도 매개변수로부터 뷰 범위를 결정하고 실외 지도를 표시한다. 그리고 뷰 범위(view extent)를 포함하는 검색 범위(search area)를 정한다. 검색 범위는 건물 데이터베이스에서 건물을 검색하는 지리적인 좌표의 범위이다. 검색 범위는 뷰 범위와 동일하게 할 수도 있지만, 뷰 범위보다 크게 하는 것이 바람직하다. 예를 들어 검색 범위는 뷰 범위와 중심이 일치하고, 모양은 같으며 면적은 2배로 할 수 있다.The step of displaying the initial screen so that the place visible on the initial screen of the map app meets the target map parameters includes the following steps. First, the view range is determined from the target map parameters and the outdoor map is displayed. Then, a search area including a view extent is determined. The search range is the range of geographic coordinates to search for buildings in the building database. The search range can be made the same as the view range, but it is preferable to make it larger than the view range. For example, the search range can be centered with the view range, have the same shape, and have twice the area.
검색 범위가 정해지면 건물 데이터베이스를 검색하여 건물의 대표 지점이 검색 범위에 포함되는 건물들의 목록(Bld_ID)을 작성한다. 이 목록에 포함된 건물들에 대하여 각 건물들의 외곽선 표시 줌 레벨(zoomShowBld)과 디지털 지도의 줌 레벨(viewZoom)을 비교하여 외곽선 표시 대상 건물 목록(bldIDsToShow)을 작성하고, 이 목록에 포함된 건물들의 외곽선 도면(building outline drawings)을 건물 데이터 저장소(building data store)에서 가져와서 실외 지도 상의 올바른 위치에 표시한다.When the search range is determined, the building database is searched and a list (Bld_ID) of buildings whose representative points are included in the search range is created. For the buildings included in this list, a list of buildings to display outlines (bldIDsToShow) is created by comparing the zoom level (zoomShowBld) of each building and the zoom level (viewZoom) of the digital map, and Building outline drawings are retrieved from the building data store and marked in the correct location on the outdoor map.
다음으로 외곽선 표시 대상 건물 목록(bldIDsToShow)에 있는 건물들에 대하여 평면도 표시 줌 레벨(zoomShowFloor)과 디지털 지도의 줌 레벨(viewZoom)을 비교하여 평면도 표시 대상 건물 목록(floorplanIDsToShow)을 작성한다. 평면도 표시 대상 건물 목록에 있는 건물들에 대하여 지면층(ground floor)이 있는 건물인지 확인하여, 지면층이 있는 건물들의 평면도를 건물 데이터 저장소에서 가져와서 실외 지도 상의 올바른 위치에 표시한다.Next, for the buildings in the outline display target building list (bldIDsToShow), the floor plan display zoom level (zoomShowFloor) and the digital map zoom level (viewZoom) are compared to create the floor plan display target building list (floorplanIDsToShow). For the buildings in the list of buildings to be displayed as floor plans, check if they are buildings with a ground floor, and the floor plans of the buildings with ground floors are retrieved from the building data storage and displayed in the correct location on the outdoor map.
다음으로 뷰 중심(view center)이 건물의 외곽선 내에 위치하는 건물, 즉 중앙의 건물(building at view center)이 있는지 확인한다. 중앙의 건물이 있으면, 목표 지도 매개변수에 포함된 건물의 층(goalFloor)이 지면층인지 확인하고, 지면층이 아니면 중앙의 건물에 대하여 지면층의 평면도를 제거하고 해당 층의 평면도를 가져와서 실외 지도 상의 올바른 위치에 표시한다.Next, it checks whether there is a building whose view center is located within the outline of the building, that is, a building at the view center. If there is a building in the center, check if the floor (goalFloor) of the building included in the target map parameter is the ground floor. Mark the correct location on the map.
도 47은 이와 같은 알고리즘을 적용하여 디지털 지도의 초기 화면에 OK벤처타운 2층의 실내 지도가 보이게 한 예로, 도 44와 동일한 지도 화면이 초기 화면으로 보이는 것을 알 수 있다. 이와 같이 초기 화면에 실내 지도가 보이도록 하려면 여러 단계가 순차적으로 작동하여야 한다. 예를 들어 외곽선 표시 대상 건물 목록(bldIDsToShow)이 완성되기 이전에 평면도 표시 대상 건물 목록(floorplanIDsToShow)을 작성하면 안 된다. 건물 데이터베이스를 검색하거나, 건물 데이터 저장소에서 건물의 외곽선 도면이나 평면도를 가져와서 실외 지도 상의 올바른 위치에 표시하는 작업은 비동기적으로(asynchronously) 이루어진다. 그럼에도 불구하고 전술한 단계들은 사실상 동기적으로(synchronously) 작동하도록, 즉 전 단계가 끝난 다음에야 다음 단계가 시작되도록 프로그램이 작성되어야 한다.47 is an example in which the indoor map of the second floor of OK Venture Town is displayed on the initial screen of the digital map by applying the algorithm, and it can be seen that the same map screen as in FIG. 44 is displayed as the initial screen. In this way, in order to show the indoor map on the initial screen, several steps must be operated sequentially. For example, the list of buildings to be displayed in a floor plan (floorplanIDsToShow) should not be created before the list of buildings to be displayed with outlines (bldIDsToShow) is completed. Retrieving the building database or fetching the outline drawing or floor plan of the building from the building data store and displaying it in the correct location on the outdoor map is done asynchronously. Nevertheless, a program must be written so that the steps described above operate synchronously in nature, i.e., the next step begins only after the previous step has finished.
[실시예 6][Example 6]
도 48의 중앙에는 대전중앙로지하상가의 외곽선이 실외 지도 상의 올바른 위치에 표시되고 있으며, 오른쪽에는 대전역전지하상가의 외곽선이 일부 보이고 있다. 도 49는 이 대전중앙로지하상가의 오른쪽 회랑(corridor)을 디지털 지도의 시작 장소로 지정한 상태를 보여주며, 도 50은 디지털 지도의 초기 화면을 보여준다. 도 50에서 실외 지도는 지리적인 좌표와 줌과 회전이 모두 똑같이 재현되었는데, 실내 지도는 표시되지 않은 것을 알 수 있다.In the center of FIG. 48, the outline of the Daejeon Jungang-ro Underground Shopping Center is displayed at the correct location on the outdoor map, and on the right side, the outline of the Daejeon Station Underground Shopping Mall is partially visible. 49 shows a state in which the right corridor of the Daejeon Jungang-ro Underground Shopping Center is designated as the starting point of the digital map, and FIG. 50 shows the initial screen of the digital map. In FIG. 50, the outdoor map is reproduced with the same geographical coordinates, zoom, and rotation, but it can be seen that the indoor map is not displayed.
도 51은 실시예 5의 알고리즘이 이 경우에 왜 실패하는지를 설명하기 위한 개념도이다. 대전중앙로지하상가는 약 490개의 상점들이 있는 비교적 큰 지하상가이다. 그런데 이 지하상가의 외곽선을 나타내는 도형의 도심(centroid)을 구해보면 이 지하상가의 외곽선 내에 위치하지도 않는다. 그러므로 이 지하상가의 대표 지점은 임의로 대전 중앙로 사거리의 중심과 일치하도록 하였다.51 is a conceptual diagram for explaining why the algorithm of Example 5 fails in this case. Daejeon Jungang-ro Underground Shopping Center is a relatively large underground shopping center with about 490 stores. However, when the centroid of the figure representing the outline of this underground shopping center is obtained, it is not located within the outline of this underground shopping mall. Therefore, the representative point of this underground shopping mall was arbitrarily matched with the center of the intersection of Jungang-ro, Daejeon.
도 51에서 디지털 지도의 뷰 범위(view extent)는 지하상가의 오른쪽 회랑에 치우쳐 있다. 그런데 이 지하상가의 크기와 모양으로 인하여 이 지하상가의 대표 지점(building center)이 뷰 범위(view extent)는 물론이고, 검색 범위(search area)에도 포함되지 않는다. 따라서 목표 지도 매개변수에서 검색 범위가 정해진 다음에 건물 데이터베이스에서 검색하더라도 이 대전중앙로지하상가를 검색할 수 없다. 그러므로 도 50에서 실외 지도만 표시되고, 실내 지도는 표시되지 않은 것이다.In FIG. 51, the view extent of the digital map is biased towards the right corridor of the underground shopping mall. However, due to the size and shape of the underground shopping mall, the building center of the underground shopping mall is not included in the search area as well as the view extent. Therefore, even if the search range is determined in the target map parameter and then the building database is searched, this Daejeon Jungang-ro Underground Shopping Center cannot be searched. Therefore, only the outdoor map is displayed in FIG. 50, and the indoor map is not displayed.
이와 같은 문제점을 해결하기 위한 가장 바람직한 방법은 층(floor)에 더하여 건물의 고유식별번호(unique building identification number), 즉 건물 아이디(building ID) bldID를 지도 매개변수에 포함시키는 것이다. 즉, 지도 매개변수는 지리적인 좌표와 건물 아이디와 층을 포함하며, 디지털 지도의 줌과 회전을 더 포함할 수 있다. 또, 장소의 개념은 지리적인 좌표와 건물 아이디와 층을 포함하는 것으로 한다.The most preferred way to solve this problem is to include a unique building identification number, that is, a building ID (bldID) of a building in the map parameter in addition to the floor. That is, the map parameters include geographical coordinates, building IDs, and floors, and may further include zoom and rotation of the digital map. In addition, the concept of place shall include geographical coordinates, building ID, and floor.
이와 같은 본 발명의 제6 실시예는 웹앱(web app)으로 실행되는 디지털 지도(digital map)의 초기 화면(initial screen)에 보이는 실내·외의 장소(place)를 기기별로 개인화(personalization)하는 방법에 관한 발명으로 시작 지도 매개변수(start map parameters)를 저장하는 단계와 지도 앱을 실행하는 단계로 구성된다.The sixth embodiment of the present invention is a method for personalizing an indoor/outdoor place shown on the initial screen of a digital map executed as a web app for each device. The related invention consists of storing start map parameters and executing a map app.
도 52는 본 발명의 제6 실시예에서 시작 지도 매개변수를 저장하는 알고리즘을 보여주는 순서도이다. 시작 지도 매개변수를 저장하는 단계는 사용자(user)가 지도 앱과의 상호 작용을 통하여 지도 앱의 초기 화면에 보이게 할 장소를 선택하는 단계, 사용자가 선택된 장소를 시작 장소(start place)로 등록하는 메뉴를 실행하는 단계, 지도 앱이 시작 장소에 해당하는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID) bldID와 층(floor)을 포함하는 지도 매개변수(map parameters)를 기기의 로컬 스토리지(local storage)에 시작 지도 매개변수로 저장하는 단계를 포함한다.52 is a flowchart showing an algorithm for storing starting map parameters in the sixth embodiment of the present invention. The step of storing the starting map parameters is a step in which the user selects a place to be displayed on the initial screen of the map app through interaction with the map app, and a step in which the user registers the selected place as a start place. The step of executing the menu, the map app stores map parameters including geographic coordinates corresponding to the starting place, building ID, bldID, and floor in the device's local storage ( local storage) as a starting map parameter.
전술한 바와 같이 지도 앱의 초기 화면에 보이게 할 장소(place)를 특정하기 위하여 시작 지도 매개변수에 지리적인 좌표와 건물 아이디(bldID)와 건물 내 층(floor)을 포함시켜야 하고, 디지털 지도의 줌(zoom)과 회전(rotation)도 포함하는 것이 바람직하다. 건물 아이디와 층은 건물이 없는 실외에서는 널(null) 값을 대입하지 않고, 실외라는 사실을 프로그램에게 알려주기 위하여 특별한 숫자를 사용한다. 널 값을 사용하지 않는 이유는 로컬 스토리지에 시작 지도 매개변수를 저장할 때 실수나 정수로 값을 저장하기 위해서이다.As described above, in order to specify a place to be displayed on the initial screen of the map app, the geographic coordinates, the building ID (bldID), and the floor in the building must be included in the starting map parameters, and the zoom of the digital map It is desirable to include zoom and rotation as well. For the building ID and floor, a special number is used to inform the program that it is outdoors without substituting a null value when there is no building outside. The reason for not using null values is to store values as floats or integers when storing starting map parameters in local storage.
건물 아이디는 1 이상의 자연수(natural number)로 하는 것이 바람직하다. 즉, "bldID = 1,2,3,4,5..."와 같이 1부터 시작하여 순차적으로 번호를 부여하지만, 반드시 연속적인 숫자를 사용할 필요는 없다. 예를 들어 어떤 건물의 주인이 자기 건물의 건물 아이디로 행운의 번호인 777을 고집한다면 그대로 해도 되고, 마찬가지 이유로 4나 13번을 건물 아이디로 사용하지 않아도 된다. 또, 이산 수학(discrete mathematics)의 특성상 건물 번호는 0번부터 시작하는 것이 맞지만, 건물 번호가 0번이라고 하면 사용자들에게 정서적인 혼란을 일으킬 수 있으므로 0 대신에 1부터 시작하도록 한다.The building ID is preferably a natural number of 1 or more. That is, numbers are sequentially assigned starting from 1, such as "bldID = 1,2,3,4,5...", but it is not necessary to use consecutive numbers. For example, if the owner of a building insists on the lucky number 777 as the building ID for his building, he can do so, and for the same reason, he does not have to use 4 or 13 as his building ID. In addition, due to the nature of discrete mathematics, it is correct to start building numbers from 0, but if the building number is 0, it may cause emotional confusion to users, so start from 1 instead of 0.
건물 아이디에 요구되는 유일한 조건은 모든 건물들의 아이디가 서로 다르다는 조건 하나이다. 따라서 SNS 사이트에 가입할 때 아이디를 정하듯이 건물 아이디를 영문과 숫자를 조합해서 사용할 수도 있다. 즉, 건물 아이디를 'BurjKhalifa0'이라고 하거나 'tallest_building_in_the_world_1'과 같이 지을 수도 있다.The only condition required for building IDs is that all buildings have different IDs. Therefore, just as you decide on an ID when signing up for an SNS site, you can use a combination of English letters and numbers for your building ID. That is, the building ID can be 'BurjKhalifa0' or 'tallest_building_in_the_world_1'.
그런데 건물 아이디를 이런 식으로 정하면 건물을 데이터베이스에서 검색하는 데 있어서 불필요하게 시간이 낭비된다. 또, 건물 아이디는 지도 앱에 사용자 로그인(user login)하기 위한 목적이 아니라, 건물 데이터베이스(building database)에 건물들을 등록하여 서로 구분하기 위한 목적이다. 그러므로 가장 단순하게 자연수로 건물 아이디를 정하고, 그 숫자는 시스템(system)이 순차적으로 추천을 해주되, 사용자는 추천된 숫자를 무시하고 자신이 선호하는 숫자를 사용할 수 있도록 하는 것이 바람직하다. 예를 들어 OK벤처타운의 건물 아이디는 1번이고, 대전중앙로지하상가의 건물 아이디는 101번, 대전역전지하상가의 건물 아이디는 102번이다.However, if the building ID is set in this way, time is wasted unnecessarily in searching for the building in the database. In addition, the building ID is not for user login to the map app, but for distinguishing buildings by registering them in a building database. Therefore, it is preferable to set the building ID as the simplest natural number, and the system sequentially recommends the number, but the user can ignore the recommended number and use the number he or she prefers. For example, the building ID of OK Venture Town is 1, the building ID of Daejeon Jungang-ro Underground Shopping Center is 101, and the building ID of Daejeon Station Underground Shopping Center is 102.
모든 실재하는 건물들의 아이디가 1 이상의 자연수이므로, 실외와 같이 건물이 존재하지 않는 장소의 건물 아이디는 -1로 할 수 있다. 즉, 시작 지도 매개변수에 포함된 건물 아이디가 -1이라면, 건물이 없는 장소라는 것을 알 수 있다.Since the ID of all existing buildings is a natural number greater than 1, the building ID of a place where no building exists, such as outdoors, can be set to -1. In other words, if the building ID included in the starting map parameter is -1, you can know that the place has no buildings.
실내의 층은 정수로 주어진다. 실내에 있을 때 1층은 0, 2층은 1, 3층은 2, 지하 1층은 -1, 지하 2층은 -2와 같이 주어진다. 그리고 실외에 있을 때는 층이 0으로 주어진다. 층은 0이지만(floor = 0), 건물 아이디는 -1(bldID = -1)이라면, 건물 내의 1층이 아니라, 실외라는 것을 알 수 있다.The floor of the room is given as an integer. When indoors, the first floor is given as 0, the second floor as 1, the third floor as 2, the first basement floor as -1, and the second basement floor as -2. And when you are outdoors, your floor is given as 0. If the floor is 0 (floor = 0), but the building ID is -1 (bldID = -1), you can see that it is outside the building, not on the first floor.
한편, 대전중앙로지하상가는 지면층이 없는 건물이다. 대전 중앙로 사거리에서 대전중앙로지하상가의 지하 1층(B1)을 선택하지 않으면, 디지털 지도에는 대전중앙로지하상가의 실내 지도가 표시되지 않고, 단지 건물의 외곽선만 표시된다. 이때의 층은 무한대(Infinity)로 표시할 수 있다. 무한대는 자바스크립트 문법에서 유효한 숫자(number)로 정의되어 있다. 따라서 건물 아이디가 1 이상의 자연수이고 층이 무한대라면, 그 지리적인 좌표에 건물은 있지만 사용자는 건물 내에 있지 않은 것으로 판단한다. 예를 들어 중앙로 사거리 한복판에 서있는 경우나, 건물의 옥상에 있거나, 낙하산을 타고 건물 위로 착지하려는 경우를 생각할 수 있다.On the other hand, Daejeon Jungang-ro Underground Shopping Center is a building without a ground floor. If you do not select B1 (B1) of Daejeon Jungang-ro Underground Shopping Center at the Daejeon Jungang-ro Intersection, the digital map does not display the indoor map of Daejeon Jungang-ro Underground Shopping Mall, only the outline of the building is displayed. The layer at this time can be displayed as infinity. Infinity is defined as a valid number in JavaScript syntax. Accordingly, if the building ID is a natural number greater than or equal to 1 and the number of floors is infinite, it is determined that the building exists at the geographical coordinates but the user is not inside the building. For example, you can think of standing in the middle of a crossroads on Jungang-ro, on the roof of a building, or trying to land on top of a building by parachute.
한편, 지도 앱을 실행하는 단계는 사용자가 지도 앱을 시작하는 단계, 지도 앱이 기기의 로컬 스토리지에 저장된 시작 지도 매개변수가 있는지 확인하는 단계, 저장된 시작 지도 매개변수가 있으면 시작 지도 매개변수를 목표 지도 매개변수(goal map parameters)로 지정하고, 저장된 시작 지도 매개변수가 없으면 기본 지도 매개변수(default map parameters)를 목표 지도 매개변수로 지정하는 단계, 초기 화면에 보이는 장소가 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함한다.On the other hand, the steps of launching the map app include the user starting the map app, the map app checking whether there are starting map parameters stored in the device's local storage, and if there are the starting map parameters stored, the starting map parameters are the target. Specifying as goal map parameters, and if there is no saved start map parameter, specifying default map parameters as target map parameters, the place shown on the initial screen matches the target map parameters and displaying an initial screen to
도 53은 지도 앱의 초기 화면에 보이는 장소가 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계의 알고리즘을 보여주는 순서도이다. 이 단계에서는 먼저, 목표 지도 매개변수에서 시작 지도 영역(start map area)을 결정하고, 뷰(view)에 실외 지도를 표시한다. 다음으로, 사전에 정해진 규칙에 따라서 시작 지도 영역으로부터 검색 범위를 정한다. 검색 범위가 정해지면, 건물의 대표 지점이 검색 범위 안에 위치하는 건물들을 건물 데이터베이스에서 검색하여 뷰 범위 건물 목록(Bld_ID)을 작성한다. 뷰 범위 건물 목록은 건물의 대표 지점이 검색 범위 안에 위치하는 건물들의 건물 아이디(bldID)의 배열(array)이다.53 is a flowchart illustrating an algorithm of a step of displaying an initial screen such that a place visible on the initial screen of a map app matches a target map parameter. In this step, first, a start map area is determined from the target map parameters, and an outdoor map is displayed in a view. Next, a search range is determined from the starting map area according to a predetermined rule. When the search range is determined, buildings whose representative points are located within the search range are searched in the building database to create a view range building list (Bld_ID). The view range building list is an array of building IDs (bldID) of buildings whose representative points are located within the search range.
다음으로, 목표 지도 매개변수에 포함된 건물 아이디(goalBldID)가 유효한 건물 아이디인지 조사한다. goalBldID가 -1이면 유효하지 않은 건물 아이디이고, 1 이상의 자연수이면 유효한 건물 아이디이다. goalBldID가 유효한 건물 아이디이면, 이 건물 아이디가 뷰 범위 건물 목록(Bld_ID)에 포함되어 있는지 확인하고, 포함되어 있지 않다면 건물 데이터베이스에서 이 건물 아이디를 갖는 건물을 검색하여 뷰 범위 건물 목록에 추가한다.Next, it is checked whether the building ID (goalBldID) included in the target map parameter is a valid building ID. If goalBldID is -1, it is an invalid building ID, and if it is a natural number greater than 1, it is a valid building ID. If goalBldID is a valid building ID, check if this building ID is included in the view range building list (Bld_ID), and if not included, search for a building with this building ID in the building database and add it to the view range building list.
다음으로, 뷰 범위 건물 목록으로부터 외곽선 표시 대상 건물 목록(bldIDsToShow)을 작성한다. 외곽선 표시 대상 건물은 뷰 범위 건물 목록에 있는 건물 중에서 외곽선을 표시하기 위한 줌 레벨(zoom level for showing building outline, zoomShowBld)이 디지털 지도의 줌 레벨보다 작은 건물들의 목록이다.Next, create a list of buildings to display outlines (bldIDsToShow) from the list of buildings in the view range. The outline display target building is a list of buildings whose zoom level for showing building outline (zoomShowBld) is smaller than the zoom level of the digital map among the buildings in the view range building list.
다음으로, 외곽선 표시 대상 건물 목록에 있는 건물들에 대하여 건물 데이터 스토어(building data store)에서 건물 외곽선 도면(building outline drawings)을 가져와서 실외 지도 상의 올바른 위치에 표시한다. 이후에는 실시예 5에서와 동일한 평면도 표시 단계가 수행된다. 이와 같은 방법을 사용하면 도 49에 보이는 장소도 시작 장소로 등록하여 오류없이 동작한다.Next, building outline drawings of the buildings in the list of buildings to be marked as outlines are retrieved from the building data store and displayed at correct locations on the outdoor map. After that, the same plan view display step as in Example 5 is performed. If this method is used, the place shown in FIG. 49 is also registered as a starting place and operates without errors.
[실시예 7][Example 7]
제1 내지 제6 실시예의 발명들에 사용된 기술을 사용하면 실외 지도나 실내 지도를 문자 메시지로 보내서 수신인과 공유할 수 있다. 즉, 본 발명의 제7 실시예는 지도 앱(map app)에 보이는 실내·외의 장소(place)를 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)하는 방법에 관한 발명이며, 송신인이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.Using the technology used in the inventions of the first to sixth embodiments, an outdoor map or an indoor map can be sent as a text message and shared with a recipient. That is, the seventh embodiment of the present invention relates to a method for sharing an indoor/outdoor place visible on a map app with a receiver by sending a text message, It consists of a sender sending a text message and a recipient selecting a received text message and executing a map app.
도 54는 송신인이 문자 메시지를 보내는 단계의 알고리즘을 보여주는 순서도이며, 송신인이 지도 앱과의 상호 작용을 통하여 수신인의 기기에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이게 할 장소를 선택하는 단계, 송신인이 선택된 장소를 문자 메시지로 보내는 메뉴를 실행하는 단계, 지도 앱이 선택된 장소에 해당하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계, 송신인이 수신인을 선택하고 문자 메시지를 발송하는 단계를 포함한다.54 is a flow chart showing the algorithm of the sender sending a text message, and the sender selecting a place to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app. , The sender executes a menu that sends the selected place as a text message, and the map app includes a URL (Uniform Resource Locator) including map parameters corresponding to the selected place as a search string. and creating a text message body for sending the text message, selecting a recipient by the sender and sending the text message.
수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는 수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는(launch) 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하는(parse) 단계, 지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함한다.The step in which the recipient selects the received text message to launch the map app, the step in which the recipient selects the received text message to launch the map app that runs as a web app, and the map app launches the map from the search string included in the URL A step of extracting parameters (parse), and a step of displaying the initial screen so that places visible on the initial screen of the map app match the extracted map parameters.
선택된 장소에 해당하는 지도 매개변수는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID)와 층(floor)을 포함하며, 지도 영역(map area)의 줌(zoom)과 회전(rotation)도 포함하는 것이 바람직하다. Map parameters corresponding to the selected place include geographic coordinates, building ID and floor, as well as zoom and rotation of the map area. It is desirable to do
건물 아이디(building ID)는 중앙의 건물(building at view center)이 존재하는 경우에는 1 이상의 자연수(natural number)로 주어지고, 중앙의 건물이 존재하지 않는 경우에는 자연수가 아닌 숫자로 주어진다. 예를 들어 -1로 주어질 수 있다.The building ID is given as a natural number of 1 or more when a building at view center exists, and is given as a number other than a natural number when the building at view center does not exist. For example, it can be given as -1.
층(floor)은 중앙의 건물이 존재하지 않는 경우에는 0으로 주어지고, 중앙의 건물이 있고 실내 지도(indoor map)가 표시되는 경우에는 정수(integer)로 주어지며, 중앙의 건물이 존재하지만 실내 지도가 표시되지 않는 경우에는 정수가 아닌 숫자로 주어진다. 예를 들어 Infinity로 주어질 수 있다.The floor is given as 0 when the central building does not exist, and given as an integer when there is a central building and an indoor map is displayed, and the central building exists but indoors If the map is not displayed, it is given as a non-integer number. For example, it can be given as Infinity.
도 55는 URL에 포함된 검색 문자열(window.location.search)에서 지도 매개변수를 추출(parsing)하여 세션 스토리지에 저장하는 자바스크립트 코드이며, 인덱스 페이지(index.html)의 일부이다. 검색 문자열에서 콜론(":")을 모두 앰퍼샌드("&")로 바꾼 뒤, 이 검색 문자열에서 searchParams라는 이름으로 URLSearchParams 객체를 생성한다. 이 객체가 빈 객체("")가 아니라면, 세션 스토리지(window.sessionStorage)를 새로 생성한다. 다음으로, searchParams에서 북향거리(northing), 동향거리(easting), 위도(latitude), 경도(longitude), 줌(zoom), 회전(rotation), 건물 아이디(building ID), 층(floor)을 읽어와서(access and read) 각각 northing, easting, latitude, longitude, zoom, rotation, bldID, floor라는 변수에 저장한다. searchParams에 대응하는 값이 있다면 변수에는 실제 값이 저장되고, 대응되는 값이 없다면 변수는 값이 없는(null) 빈 변수가 된다.55 is a JavaScript code for extracting (parsing) a map parameter from a search string (window.location.search) included in a URL and storing it in session storage, and is a part of an index page (index.html). After replacing all colons (":") with ampersands ("&") in the search string, create a URLSearchParams object named searchParams from this search string. If this object is not an empty object (""), a new session storage (window.sessionStorage) is created. Next, read northing, easting, latitude, longitude, zoom, rotation, building ID, and floor from searchParams. Access and read are stored in variables called northing, easting, latitude, longitude, zoom, rotation, bldID, and floor, respectively. If there is a value corresponding to searchParams, the actual value is stored in the variable, and if there is no corresponding value, the variable becomes an empty variable with no value (null).
마지막으로 이 8개의 변수로부터 sessionMapParameters라는 이름의 지도 매개변수 객체(mapParameters object)를 생성한 뒤 세션 스토리지에 저장한다. sessionMapParameters를 세션 스토리지에 저장하기 위해서는 먼저 문자열로 변환하여야 한다. 이후에는 기기의 종류와 화면 모드를 판단하여 대응하는 랜딩 페이지가 시작된다.Finally, a mapParameters object named sessionMapParameters is created from these eight variables and stored in the session storage. To store sessionMapParameters in session storage, you must first convert them into strings. After that, the corresponding landing page is started by determining the device type and screen mode.
도 56은 지도 매개변수 객체를 생성하는 자바스크립트 코드이다. 지도 매개변수로 전달된 북향거리, 동향거리, 위도, 경도, 줌, 회전, 건물 아이디와 층은 각각 __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, __floor라는 이름을 가지는 내부 변수에 저장된다. 북향거리와 동향거리가 모두 유효한 값을 가지고 있다면(4행), 북향거리와 동향거리로부터 위도와 경도를 계산하여(6행, 8행) 위치 객체(location object)로 저장한다(10행). 만약 북향거리와 동향거리 중 어느 하나라도 유효한 값을 가지고 있지 않다면, 위도와 경도가 모두 유효한 값을 가지고 있는지 조사한다. 위도와 경도가 모두 유효한 값을 가지고 있다면 이들을 위치 객체로 저장한다(11행). 만약, 위도와 경도 중 어느 하나라도 유효한 값을 가지고 있지 않다면, 위치 객체는 널(null, 없음)로 설정한다(12행). 위치 객체가 널이 아니라면(14행), 줌, 회전, 건물 아이디, 층을 각각 조사하여 값이 있으면 그 값으로 저장하고, 값이 없으면 기본 값을 사용한다(16 ~ 26행).56 is the JavaScript code for creating a map parameter object. The northbound distance, eastbound distance, latitude, longitude, zoom, rotation, building ID, and floor passed as map parameters are stored in internal variables named __northing, __easting, __latitude, __longitude, __zoom, __rotation, __bldID, and __floor, respectively. . If both northbound and eastbound distances have valid values (line 4), the latitude and longitude are calculated from the northbound and eastbound distances (lines 6 and 8) and stored as a location object (line 10). If either of the northbound and eastbound distances do not have valid values, check whether latitude and longitude both have valid values. If both latitude and longitude have valid values, save them as a location object (line 11). If neither latitude nor longitude has a valid value, the location object is set to null (line 12). If the location object is not null (line 14), zoom, rotation, building ID, and floor are investigated, and if there is a value, the value is saved. If there is no value, the default value is used (lines 16 to 26).
지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계는 추출된 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계, 미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계, 기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계, 랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계, 세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 지정하는 단계, 목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함한다.The step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters is the step of storing the extracted map parameters in session storage, using a media query Determining the device type and screen orientation, launching a landing page suitable for the device type and screen orientation, and storing the landing page in the session storage It includes getting map parameters, designating the map parameters retrieved from the session storage as target map parameters, and setting a map object to match the target map parameters.
이와 같은 방법에 의하여 URL에 포함된 검색 문자열에 북향거리와 동향거리가 포함되어 있거나, 위도와 경도가 포함되어 있다면 그 지리적인 좌표로 지도 앱이 시작된다. 만약 북향거리와 동향거리와 위도와 경도가 모두 포함되어 있다면 북향거리와 동향거리의 값을 사용한다. URL에 지리적인 좌표가 포함되어 있지 않다면, 로컬 스토리지에 저장된 시작 지도 매개변수로 지도 앱이 실행된다. 시작 지도 매개변수도 저장되어 있지 않다면 기본 지도 매개변수로 지도 앱이 실행된다.In this way, if the search string included in the URL includes distance north and east, or latitude and longitude, the map app is started with the geographical coordinates. If both northbound and eastbound distances and latitude and longitude are included, use the northbound and eastbound distance values. If the URL does not contain geographic coordinates, the Maps app is launched with the starting map parameters stored in local storage. If the starting map parameters are not also saved, the map app will be launched with the default map parameters.
건물 아이디와 층이 유효한 값이라면 실내 지도 상에서의 정확한 위치를 알려주며, 그렇지 않다면 실외라고 간주하여 디지털 지도의 초기 화면에 실외 지도만을 표시한다. 줌과 회전이 포함되어 있다면 송신인이 보낸 지도 화면이 수신인의 기기에서 그대로 재현이 되고, 그렇지 않다면 장소만 알려주게 된다.If the building ID and floor are valid values, it informs the exact location on the indoor map. If not, it is regarded as outdoor and only the outdoor map is displayed on the initial screen of the digital map. If zoom and rotation are included, the map screen sent by the sender is reproduced on the recipient's device as it is, otherwise only the location is indicated.
[실시예 8][Example 8]
스마트폰에서 웹앱으로 실행되는 지도 앱을 실행하여 화면에 보이는 장소를 문자 메시지로 보내기 위해서는 최소한 2가지의 외부 환경이 필요하다. 인터넷이 되어야 하고, 문자 메시지가 되어야 한다. 또, 주소가 없거나 위치를 짐작할 수 없는 낯선 곳에서 지리적인 좌표를 문자 메시지로 보내기 위해서는 GPS 센서가 작동해야 한다. GPS 센서는 인공위성으로부터 신호를 받아서 작동하므로 하늘이 보이는 장소에 있어야 하지만, 무선 인터넷이나 전화망과는 상관이 없다.At least two external environments are required to send a text message to a place shown on the screen by running a map app that runs as a web app on a smartphone. It has to be the internet, it has to be text messages. In addition, GPS sensors must work to send geographic coordinates as text messages in unfamiliar places where there is no address or where the location cannot be guessed. The GPS sensor works by receiving signals from satellites, so it must be in a place where you can see the sky, but it has nothing to do with wireless Internet or telephone networks.
실내에서 지도 앱의 지도 화면(map screen)에 보이는 실내·외의 장소를 문자 메시지로 보낼 때와는 달리 실외에서는 무선 인터넷이 작동하지 않을 수 있다. 인터넷이 작동하지 않는다면 앱 서버(app server)나 실외 지도 서버(outdoor map server), 건물 데이터베이스(building database), 건물 데이터 스토어(building data store)에 연결할 수 없다. 따라서 웹앱으로 작성된 지도 앱을 이용할 수 없다.Unlike when sending a text message of indoor and outdoor places shown on the map screen of a map app indoors, wireless Internet may not work outdoors. If the internet isn't working, you can't connect to the app server, outdoor map server, building database, or building data store. Therefore, you cannot use a map app written as a web app.
그런데 전술한 바와 같이 비교적 최신 기술인 프로그레시브 웹앱(PWA, Progressive Web App)을 이용하면 인터넷이 안되는 장소에서도 앱(app)을 사용할 수 있다. 구글 크롬(Chrome)으로 PWA로 작성된 웹앱(예를 들어 https://map.digitalearth.land)에 접속하면 PC나 스마트폰에 설치할 수 있는 메뉴 버튼이 나타난다. 설치 버튼을 누르면 앱 서버에서 가져온 소스 파일들이 PC나 스마트폰에 저장되고, 바탕 화면에 아이콘도 나타난다. 도 57에서 스마트폰에 설치된 프로그레시브 웹앱(D.E.map)을 볼 수 있다. 구글 크롬(Chrome)이나 구글 지도, 네이버 지도, 카카오맵은 네이티브 앱(native app)이며, D.E.map(https://map.digitalearth.land)은 PWA이다. 도 57에서 볼 수 있는 바와 같이 네이티브 앱과 프로그레시브 웹앱을 육안으로 구분하기 힘들다.By the way, as mentioned above, if you use a progressive web app (PWA), which is a relatively new technology, you can use the app even in places where there is no internet. When you access a web app written in PWA (eg https://map.digitalearth.land) with Google Chrome, a menu button appears that can be installed on your PC or smartphone. When you press the install button, the source files from the app server are saved to your PC or smartphone, and an icon appears on the desktop. 57 shows a progressive web app (D.E.map) installed on a smartphone. Google Chrome, Google Maps, Naver Maps, and Kakao Maps are native apps, and D.E.map (https://map.digitalearth.land) is a PWA. As shown in FIG. 57, it is difficult to visually distinguish a native app from a progressive web app.
바탕 화면에 보이는 PWA의 아이콘을 클릭하면 네이티브 앱과 마찬가지로 실행되며, 이미 가져온 파일들은 다시 가져오지 않고, 새로운 파일이 필요할 때만 앱서버에서 해당 파일을 가져오도록 할 수 있다. 매니페스트 파일(manifest.json)에 PC나 스마트폰에 저장할 파일들을 지정한다.When you click the PWA icon on the desktop, it runs like a native app, and files that have already been imported are not re-imported. In the manifest file (manifest.json), specify the files to be saved on the PC or smartphone.
PWA로 작성된 앱이라면 무선 인터넷이 없어도 작동한다. 인터넷이 되는 장소에서 PWA로 된 앱을 실행하면 필요한 소스 파일이나 기타 자료(assets)를 앱 서버에서 가져와서 스마트폰에 저장한다. 다음에 인터넷이 안되는 장소에서 앱을 실행하면 스마트폰에 이미 저장되어 있는 소스를 활용하여 앱이 실행된다.Apps written as PWAs will work even without wireless internet. When you run a PWA app in a place with Internet access, necessary source files or other assets are retrieved from the app server and stored in your smartphone. The next time you run the app in a place without Internet access, the app will run using the sources already stored in your smartphone.
또, 인터넷이 안되는 곳에서는 실외 지도 서버에 접속할 수 없으므로 실외 지도조차 표시되지 않을 수도 있지만, 지도 앱에서 이미 방문한 적이 있는 지역이라면 해당 지역의 지도 타일(map tiles)도 스마트폰에 저장되어 있을 수 있다. 따라서 인터넷이 안되는 장소에서도 실외 지도가 보일 수 있다. 그리고 깊은 산속에서 조난을 당했더라도 거의 확실하게 GPS 센서는 작동한다. 그리고 무선 인터넷이 안되는 곳에서도 문자 메시지는 되는 경우가 많다. 문자 메시지는 전화 통화와 같은 망(network)을 이용하며, 무선 인터넷과는 별개의 망을 사용한다. 따라서 전화가 되는 지역에 있다면 자신이 조난당한 위치를 모호한 표현으로 구술하기보다는 지도 앱을 이용하여 정확한 지리적인 좌표를 문자 메시지로 보내어 신고할 수 있다. 본 발명의 제8 실시예는 인터넷이 안되고, 실외 지도조차 이용할 수 없는 환경에서 GPS 좌표를 문자 메시지로 보내기 위한 방법에 관한 발명이다.In addition, even outdoor maps may not be displayed because the outdoor map server cannot be accessed in places without internet, but if the map app has already visited an area, the map tiles of the area may also be stored on the smartphone. . Therefore, outdoor maps can be viewed even in places where there is no internet. And even if you're stranded deep in the mountains, the GPS sensor will almost certainly work. And even in places where there is no wireless Internet, text messages are often available. A text message uses the same network as a phone call, and uses a network separate from the wireless Internet. So, if you're in an area where phone calls are available, you can use the Maps app to report your distress by texting the exact geographic coordinates rather than dictating the exact location of your distress in vague terms. An eighth embodiment of the present invention relates to a method for sending GPS coordinates as a text message in an environment where the Internet is not available and even an outdoor map is not available.
도 58은 지도 앱의 다양한 메뉴(menu) 중의 일부를 보여주며, '화면을 문자 메시지로 보내기(send screen by text message)' 메뉴 버튼과 '화면의 인터넷 주소 복사하기(copy URL for the screen)' 메뉴 버튼과 'GPS 좌표를 문자 메시지로 보내기(send GPS coordinates by text message)' 메뉴 버튼과 '긴급 연락처 등록하기(register emergency contact information)' 메뉴 버튼과 '긴급 연락처로 문자 메시지 보내기(send emergency text message)' 메뉴 버튼을 볼 수 있다.58 shows some of the various menus of the map app, with the 'send screen by text message' menu button and the 'copy URL for the screen' Menu button and 'send GPS coordinates by text message' menu button and 'register emergency contact information' menu button and 'send emergency text message' menu button )' menu button.
도 59는 PWA로 작성된 지도 앱을 실행한 초기 화면을 보여준다. 시험을 위하여 와이 파이(WiFi)와 데이터(data) 사용을 모두 차단하였지만 앱은 정상적으로 실행되는 것을 알 수 있다. 도 59에서는 'GPS 좌표를 문자 메시지로 보내기(send GPS coordinates by text message)' 메뉴 버튼을 선택하였다. 이 메뉴 버튼은 btnSendGPSCoordsBySMS라는 이름을 가지고 있다.59 shows the initial screen of executing the map app written in PWA. For the test, both WiFi and data usage were blocked, but the app runs normally. In FIG. 59, the menu button 'send GPS coordinates by text message' was selected. This menu button has the name btnSendGPSCoordsBySMS.
도 60 내지 도 61은 GPS 좌표를 문자 메시지로 보내는 알고리즘을 구현한 자바스크립트 코드의 일부를 보여준다. 도 60에서 'GPS 좌표를 문자 메시지로 보내기' 메뉴 버튼(btnSendGPSCoordsBySMS)에 이벤트 리스너(event listener)가 연결되어 있는 것을 알 수 있다. 메뉴 버튼을 선택(click, tap)하면, 지오로케이션 API(Geolocation API)를 지원하는지 확인한 후, 지원이 되면 GPS 센서로부터 현재 위치를 한번 읽어오는 API를 호출한다.60 to 61 show a part of JavaScript code that implements an algorithm for sending GPS coordinates as a text message. 60, it can be seen that an event listener is connected to the 'Send GPS coordinates as text message' menu button (btnSendGPSCoordsBySMS). When the menu button is selected (click or tap), it checks whether the Geolocation API is supported, and if supported, calls the API that reads the current location from the GPS sensor once.
지오로케이션 API는 인터넷 표준으로 정의되어 있으며, getCurrentPosition(success, error, options)는 GPS 센서를 동작시켜 한번만 좌표를 읽어오는 API이다. 이 API가 성공적으로 수행되었다면 success 함수가 호출되며, 실패하면 error 함수가 호출된다. 옵션(options)은 이 API를 어떻게 호출할지를 정의한다.The geolocation API is defined in the Internet standard, and getCurrentPosition (success, error, options) is an API that reads the coordinates only once by operating the GPS sensor. The success function is called if this API was executed successfully, and the error function is called if it fails. Options define how to call this API.
도 60에서 옵션(GPSPositionOptions)은 높은 수준의 정밀도로 위치 정보를 가져오고(enableHighAccuracy: true), 브라우저가 현재 위치를 계산하는데 무한정 기다릴 수 있으며(timeout: Infinity), 얻어진 정보는 100ms 이내에서 재사용 가능하다(maximumAge: 100)는 의미이다. 또, 성공적으로 위치 정보를 가져왔으면 sendGPSCoordsBySMS 함수를 실행하고, 실패했으면 onGPSPositionError 함수를 실행한다.In FIG. 60, the option (GPSPositionOptions) obtains location information with a high level of precision (enableHighAccuracy: true), the browser can wait indefinitely for calculating the current location (timeout: Infinity), and the obtained information can be reused within 100 ms (maximumAge: 100) is the meaning. Also, if location information is successfully obtained, sendGPSCoordsBySMS function is executed, and if it fails, onGPSPositionError function is executed.
도 61은 sendGPSCoordsBySMS 함수의 소스 코드를 보여준다. 이 함수가 호출되면 _position이라는 내부 이름을 가지는 위치 객체(position object)가 전달된다. 위치 객체는 타임스탬프 객체(timestamp object)와 좌표 객체(coords object)를 가진다. 좌표 객체는 위도(latitude), 경도(longitude), 고도(altitude), 위·경도에 대한 정확도(accuracy), 고도에 대한 정확도(altitudeAccuracy), 기기(device)의 이동 방향(heading), 기기의 이동 속도(speed)라는 속성들(attributes)을 가진다. 따라서 위치 객체로부터 위도와 경도로 구성되는 지리적인 좌표를 얻으려면 다음과 같은 두 줄의 코드가 필요하다.61 shows the source code of the sendGPSCoordsBySMS function. When this function is called, a position object with an internal name of _position is passed. The location object has a timestamp object and a coordinates object. The coordinate objects are latitude, longitude, altitude, accuracy for latitude and longitude, accuracy for altitude, heading of the device, and movement of the device. It has attributes called speed. Therefore, the following two lines of code are required to obtain geographic coordinates consisting of latitude and longitude from a location object.
let GPSLat = _position.coords.latitude;let GPSLat = _position.coords.latitude;
let GPSLon = _position.coords.longitude;let GPSLon = _position. coords. longitude;
위치 객체(position object)에서 위도(GPSLat)와 경도(GPSLon)를 읽어온 뒤, 이로부터 북향거리(GPSNorthing)와 동향거리(GPSEasting)를 계산한다. 인터넷이 안되면 지도 영역(map area)이 표시되지 않으므로 줌이나 회전 등의 지도 매개변수의 값은 무의미하다. 따라서 북향거리와 동향거리만을 사용하여 검색 문자열을 작성한다. 그런데 계산된 북향거리와 동향거리는 소수점 이하의 자릿수가 여럿인 실수로 주어지므로, 소수점 이하를 반올림한 값으로 검색 문자열을 작성한다. GPS 센서의 오차는 5m 이상이므로, 소수점 이하의 자릿수는 무의미하기 때문이다. 도 61에서 appHOME은 웹앱의 주소(https://map.digitalearth.land)이다. 나머지 코드는 실시예 7에서와 같다.After reading the latitude (GPSLat) and longitude (GPSLon) from the position object, calculate the northbound distance (GPSNorthing) and eastbound distance (GPSEasting) from them. If there is no internet, the map area is not displayed, so the values of map parameters such as zoom and rotation are meaningless. Therefore, a search string is created using only the northbound distance and the eastbound distance. However, since the calculated northbound and eastbound distances are given as real numbers with multiple decimal places, the search string is written with values rounded to the nearest decimal point. This is because the error of the GPS sensor is more than 5m, so the number of digits after the decimal point is meaningless. In FIG. 61, appHOME is the web app address (https://map.digitalearth.land). The rest of the code is the same as in Example 7.
도 62는 발명자가 수신인을 자기 자신으로 하여 문자 메시지를 보낸 스마트폰 화면을 보여준다. 한편, 도 63은 다시 와이 파이(WiFi)를 켜고 문자 메시지를 선택하여 지도 앱을 실행한 화면을 보여준다. 와이 파이를 켠 이유는 검색 문자열에 포함된 지리적인 좌표에 해당하는 지도 타일(map tiles)을 가져와야 하기 때문이다.62 shows a smartphone screen in which the inventor sent a text message to himself as the recipient. Meanwhile, FIG. 63 shows a screen where a map app is executed by turning on Wi-Fi again and selecting a text message. The reason I turned on the wifi is because I need to get the map tiles corresponding to the geographic coordinates contained in the search string.
이와 같이 본 발명의 제8 실시예의 발명은 GPS 좌표를 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)하는 방법에 관한 발명이며, 송신인이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.As such, the invention of the eighth embodiment of the present invention is an invention related to a method of sharing GPS coordinates with a receiver by sending a text message, and the sender sends the text message and the receiver receives the It consists of selecting a text message and launching the map app.
도 64는 송신인이 문자 메시지를 보내는 단계의 알고리즘을 보여주는 순서도이며, 송신인이 지도 앱을 시작하는 단계, 송신인이 GPS 좌표를 문자 메시지로 보내는 메뉴를 실행하는 단계, 지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계, 지도 앱이 획득된 위치 객체로부터 지리적인 좌표를 읽어오는 단계, 지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계, 송신인이 수신인을 선택하여 문자 메시지를 발송하는 단계를 포함한다.64 is a flowchart showing the algorithm of the sender sending a text message, the sender starting a map app, the sender executing a menu to send GPS coordinates as a text message, and the map app sending a geolocation API (Geolocation API) to obtain a position object, the map app to read geographic coordinates from the acquired location object, the map app to include the geographic coordinates as a search string Creating a text message body including a URL (Uniform Resource Locator), and sending the text message by the sender selecting a recipient.
수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 시작하는(launch) 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표를 추출하는(parse) 단계, 지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표(geographic coordinates)에 부합하도록 초기 화면을 표시하는 단계를 포함한다.The step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the received text message to launch the map app, and the map app extracts geographic coordinates from the search string included in the URL. The parsing step includes displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates.
지도 앱의 초기 화면에 보이는 지도 영역이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계는 추출(parsing)된 지리적인 좌표에 줌과 회전의 기본값을 추가한 지도 매개변수(map parameters)를 세션 스토리지(session storage)에 저장하는 단계, 미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계, 기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계, 랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계, 세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 지정하는 단계, 목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함한다.The step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographic coordinates is to store the map parameters by adding default values for zoom and rotation to the extracted geographic coordinates. (session storage) step, using a media query (media query) to determine the device type (type) and screen orientation (screen mode) step, the device type and screen orientation (landing page suitable for the screen direction) landing page), fetching the map parameters stored in the session storage from the landing page, specifying the map parameters retrieved from the session storage as target map parameters, and matching the target map parameters. It involves setting up a map object.
도 65에 예시한 바와 같이 문자 메시지로 GPS 좌표를 보내는 상황은 아마도 경찰청, 소방청, 외교부 등에 다급히 도움을 요청하는 상황일 것이다. 이 경우에는 문자 메시지를 수신하는 수신인은 개인이 아니라 콜센터(call center) 등이 될 가능성이 크다. 콜센터에서는 스마트폰으로 전화나 문자 메시지를 받지 않을 것이다. 이 경우에 기기(device)는 SMS 센터(SMS center) 또는 SMS 게이트웨이(SMS gateway)에 연결된 PC, 즉 문자 메시지 서버(text message server)가 될 것이다.As illustrated in FIG. 65, the situation in which GPS coordinates are sent by text message is probably a situation in which help is urgently requested from the National Police Agency, the Fire Administration, or the Ministry of Foreign Affairs. In this case, it is highly likely that the recipient of the text message is not an individual but a call center. Call centers will not accept calls or text messages on their smartphones. In this case, the device will be a PC connected to an SMS center or an SMS gateway, that is, a text message server.
[실시예 9][Example 9]
여성이나 어린이가 어둡고 인적이 드문 밤거리를 걷다 보면 범죄의 위험에 노출되기 쉽다. 그래서 우범지역에는 인공지능 CCTV와 비상벨을 설치하여 긴급한 순간에 비상벨을 눌러서 도움을 요청하거나, 아니면 "도와주세요"와 같은 구조 요청 신호를 인공지능 SW로 인식하여 자동으로 119와 같은 구조 센터로 연결시키기도 한다. 하지만, 범죄는 우범지역에서만 일어나는 것이 아니라 언제 어디서나 일어날 수 있고, 특히 해외를 여행하다가 위험에 노출되는 경우에는 이와 같은 방법으로는 전혀 대처할 수 없다. 그리고 급박한 순간에는 전화를 걸어서 구조 요청을 하기도 어려울 수 있다.When women or children walk on dark and deserted streets at night, they are easily exposed to the risk of crime. Therefore, artificial intelligence CCTVs and emergency bells are installed in high-crime areas to request help by pressing the emergency bell in an emergency, or by recognizing a rescue request signal such as "Please help" with artificial intelligence software and automatically going to a rescue center such as 119. also connect. However, crimes do not occur only in high-crime areas, but can occur anytime, anywhere, and in particular, when traveling abroad and being exposed to danger, such a method cannot be used to cope with crime at all. And in an urgent moment, it can be difficult to call and ask for help.
이와 같은 다양한 상황에 대처하기 위하여 스마트폰에서 버튼 하나만 누르면 즉시 구조 요청 신호가 보내질 수 있다면 바람직할 것이다. 본 발명의 제9 실시예는 문자 메시지(text message)로 사전에 설정된 수신인(receiver)과 GPS 좌표를 공유(share)하는 방법에 관한 발명이며, 송신인이 긴급 연락 정보(emergency contact information)를 등록하는 단계와 문자 메시지를 보내는 단계 및 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.In order to cope with such various situations, it would be desirable if a rescue request signal could be sent immediately by pressing a single button on a smartphone. The ninth embodiment of the present invention relates to a method for sharing GPS coordinates with a previously set receiver in a text message, and the sender registers emergency contact information. It consists of a step of sending a text message, a step of sending a text message, and a step of executing a map app by the recipient selecting the received text message.
도 66은 송신인이 긴급 연락 정보를 등록하는 단계의 알고리즘을 보여주는 순서도이다. 이 단계는 송신인이 지도 앱을 시작하는 단계, 송신인이 긴급 연락 정보를 등록하는 메뉴를 실행하여 긴급 문자 메시지(emergency text message)를 수신할 긴급 연락 전화번호(emergency contact telephone number)를 포함하는 긴급 연락 정보를 입력하는 단계, 지도 앱이 긴급 연락 정보를 기기의 로컬 스토리지에 저장하는 단계를 포함한다. 도 58에 보이는 '긴급 연락처 등록하기(register emergency contact information)' 메뉴 버튼을 선택하면 긴급 연락 정보를 등록하는 화면이 나타난다.66 is a flowchart showing an algorithm of a step of registering emergency contact information by a sender. This step includes starting the map app by the sender, executing a menu for registering emergency contact information by the sender and including an emergency contact telephone number to receive an emergency text message. Entering emergency contact information, and the Maps app saving emergency contact information to the device's local storage. When the 'register emergency contact information' menu button shown in FIG. 58 is selected, a screen for registering emergency contact information appears.
도 67은 긴급 연락 정보를 등록하는 스마트폰 화면의 예이며, 도 68은 긴급 연락 전화번호로 발명자 자신의 스마트폰 전화번호를 입력한 화면을 보여준다. 여기서 사용자 이름(user name)과 긴급 연락 전화번호(phone no. to send emergency text message)는 반드시 입력하여야 하는 필드(field)이며, 나머지는 선택적으로 입력할 수 있는 필드이다. 긴급 연락 정보를 입력하고 저장(save) 버튼을 누르면 사용자 이름과 긴급 연락 전화번호를 포함하는 긴급 연락 정보를 스마트폰의 로컬 스토리지(local storage)에 저장한다.67 is an example of a smartphone screen for registering emergency contact information, and FIG. 68 shows a screen in which an inventor's own smartphone phone number is entered as an emergency contact phone number. Here, a user name and an emergency contact phone number (phone no. to send emergency text message) are fields that must be entered, and the rest are fields that can be entered selectively. If emergency contact information is entered and a save button is pressed, emergency contact information including a user name and emergency contact phone number is saved to the local storage of the smartphone.
송신인이 문자 메시지를 보내는 단계는 송신인이 지도 앱을 시작하는 단계, 송신인이 GPS 좌표를 문자 메시지로 보내는 메뉴를 실행하는 단계, 지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계, 지도 앱이 위치 객체로부터 지리적인 좌표(geographic coordinates)를 읽어오는 단계, 지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계, 지도 앱이 사전에 등록된 긴급 연락 전화번호로 문자 메시지를 발송하는 단계를 포함한다. 송신인이 도 58에 보이는 '긴급 연락처로 문자 메시지 보내기(send emergency text message)' 메뉴 버튼을 선택하면 긴급 문자 메시지를 보낼 수 있다.The sender sends a text message, the sender starts the map app, the sender executes a menu to send the GPS coordinates as a text message, and the map app calls the geolocation API to create a location object (position object) step, the map app reads geographic coordinates from the location object, the map app obtains a URL (Uniform Resource Locator) containing the geographic coordinates as a search string Creating a text message body including the text message body, and sending a text message to a pre-registered emergency contact phone number by the map app. When the sender selects the 'send emergency text message' menu button shown in FIG. 58, an emergency text message can be sent.
도 69는 긴급 문자 메시지를 작성하여 발송하는 자바스크립트 코드를 보여준다. 3행에서 로컬 스토리지에 저장된 사용자 이름(userName)을 가져오며, 5행과 7행에서는 미리 작성된 메시지(message)와 긴급 문자 메시지를 보낼 전화번호(phone)를 가져온다. 9행과 11행에서는 위치 객체(position object) _position에서 위도(GPSLat)와 경도(GPSLon)를 읽어오고, 13행과 15행에서는 위도와 경도로부터 북향거리(GPSNorthing)와 동향거리(GPSEasting)를 계산한다. 18행 내지 19행에서는 문자 메시지 몸체(text message body)를 작성한다. 이 문자 메시지 몸체에는 지리적인 좌표(GPSNorthing, GPSEasting)를 검색 문자열(search string)로 포함하는 URL과 사용자 이름(userName) 및 사전에 작성된 메시지(message)가 포함된다. 21행에서 linkSMS라는 이름으로 앵커(angker) 요소를 생성하고, 23행에서 문서(document)에 부착하며, 25행에서 문자 메시지를 보낼 수 있도록 linkSMS의 href 속성을 작성한 후, 27행에서 이 linkSMS를 프로그램적으로 클릭(click)하여 문자 메시지를 발송한다.69 shows JavaScript code for creating and sending an emergency text message. Line 3 gets the username (userName) stored in local storage, and lines 5 and 7 get the phone number to send the pre-composed message and emergency text message to. In lines 9 and 11, the latitude (GPSLat) and longitude (GPSLon) are read from the position object _position, and in lines 13 and 15, the distance north (GPSNorthing) and the distance (GPSEasting) are calculated from the latitude and longitude. do. In lines 18 to 19, a text message body is created. The text message body includes a URL including geographic coordinates (GPSNorthing, GPSEasting) as a search string, a user name (userName), and a pre-written message. Create an anchor element with the name linkSMS on line 21, attach it to a document on line 23, create the href attribute of linkSMS so that text messages can be sent on line 25, and then add this linkSMS on line 27. Click programmatically to send a text message.
도 70은 이와 같은 방법으로 발송된 긴급 문자 메시지를 보여준다. 이 문자 메시지에는 구조 대상자의 최소한의 인적 사항과 상황에 맞게 미리 작성된 메시지 및 구조 대상자의 위치를 지도상에서 확인할 수 있는 인터넷 링크가 포함되어 있다.70 shows an urgent text message sent in this way. This text message includes a pre-written message suitable for the situation and the minimum personal information of the person to be rescued, and an Internet link where the location of the person to be rescued can be checked on a map.
수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는 수신인이 수신된 문자 메시지에 포함된 URL을 선택하여 웹앱으로 실행되는 지도 앱을 시작하는 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표(geographic coordinates)를 추출(parsing)하는 단계, 지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계를 포함한다.The step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the URL included in the received text message to start the map app running as a web app, and the map app starting the map app from the search string included in the URL. Extracting (parsing) geographic coordinates; and displaying the initial screen so that a map area visible on the initial screen of the map app matches the geographical coordinates.
본 발명의 제9 실시예의 발명을 이용하면 위급 상황에서 최소한의 노력으로 신속하게 구조 요청을 할 수 있다. 예를 들어 지도 앱을 시작하고, '긴급 연락처로 문자 메시지 보내기(send emergency text message)' 버튼을 클릭하고, 문자 메시지 창에서 확인(confirm) 버튼을 누르는 것만으로 구조 요청을 할 수 있다. 또, 북극이나 남극, 사하라 사막과 같이 지구상 어디에 있더라도 전화만 되는 지역에 있다면 이 지도 앱을 이용하여 구조 요청을 할 수 있으며, 무선 인터넷이 필요하지 않다.Using the invention of the ninth embodiment of the present invention, a rescue request can be made quickly with minimal effort in an emergency situation. For example, a rescue request can be made by launching the Maps app, clicking the 'send emergency text message' button, and pressing the confirm button in the text message window. In addition, if you are in an area where you can only call anywhere on the planet, such as the Arctic, Antarctic, or the Sahara Desert, you can call for help using this map app, and no wireless internet is required.
긴급 연락 정보를 등록하는 단계에서는 스마트폰 소지자, 즉 구조 대상자의 이름, 구조 대상자의 신원 확인을 위한 주민등록번호나 여권번호와 같은 개인 식별 번호, 구조 당국의 전화번호, 구조 단계에서 구조 당국이 필요한 정보를 얻을 수 있는 가족이나 지인의 이름과 전화번호, 그리고 필요한 경우 구조 당국에서 구조 대상자의 개인 정보를 조회하는 것에 동의하는지 여부 등을 등록할 수 있다.In the step of registering emergency contact information, the name of the smartphone owner, that is, the person to be rescued, a personal identification number such as a resident registration number or passport number for identification of the person to be rescued, the phone number of the rescue authority, and the information required by the rescue authority in the rescue phase. You can register the names and phone numbers of family members or acquaintances that can be obtained, and whether or not you agree to the rescue authorities' personal information inquiry if necessary.
긴급 문자 메시지를 보낼 구조 당국은 119, 경찰청, 소방청, 각국 대사관 등 상황에 따라 다를 수 있다. 예를 들어 공부를 하고 늦은 밤에 귀가하는 여고생은 거주 지역의 경찰서의 전화번호를 등록해 놓으면 좋을 것이다. 오로라를 구경하러 핀란드에 가는 여행자는 핀란드에 있는 한국 대사관의 전화번호를 미리 등록하고 가면 좋을 것이다. 또, 긴급 연락 정보를 기기의 로컬 스토리지에 저장하는 이외에 앱 서버에도 저장하면 만일의 사태에 더 유연하게 대처할 수 있을 것이다.Rescue authorities to send emergency text messages may vary depending on the situation, such as 119, the National Police Agency, the Fire Agency, or the embassy of each country. For example, a high school girl who studies and returns home late at night would be good to register the phone number of the police station in her area of residence. Travelers going to Finland to see the aurora would do well to register the phone number of the Korean embassy in Finland in advance. In addition to storing emergency contact information in the device's local storage, storing it on the app server will also allow you to respond more flexibly to emergencies.
[실시예 10][Example 10]
때로는 지도 앱을 시작하여(launch) 메뉴 버튼을 누르는 간단한 동작도 할 수 없는 경우가 있다. 예를 들어 절벽을 등반하다가 실족하여 산 아래로 떨어지는 경우, 길을 걷다가 갑자기 교통사고를 당하는 경우 등이다. 또한, 노인이나 환자들이 낙상 사고를 당하는 경우도 마찬가지이다.Sometimes you can't even do the simple act of launching the Maps app and pressing the menu button. For example, if you fall down a mountain due to a slip while climbing a cliff, or if you suddenly get into a car accident while walking on the road. In addition, the same applies to cases in which the elderly or patients suffer a fall accident.
이와 같은 경우에는 지도 앱이 자동적으로 구조 요청 신호를 보낼 수 있다면, 구조 대상자가 직접 구조 요청 신호를 보낼 수 없는 경우에 도움이 될 것이다. 이와 같은 일을 가능하게 하기 위한 가장 적절한 방법은 앱이 백그라운드(background)에서 실행되게 하는 것이다. 예를 들어 아이폰(iPhone)의 시리(Siri)가 한 예이다. 마이크로소프트 윈도우(Microsoft Window)에서도 앱이 백그라운드에서 실행되도록 설정할 수 있다. 즉, 지도 앱을 일부러 시작하지 않더라도 스마트폰이 켜있는 상태에서 지도 앱이 최소한의 스마트폰 자원을 소모하면서 대기하고 있다가, 구조 요청 신호를 발송할 조건이 충족되면 자동적으로 구조 요청 신호를 사전에 등록된 구조 기관이나 지인에게 보낼 수 있을 것이다.In a case like this, it would be helpful if the map app could automatically signal a rescue call when the person to be rescued is unable to send a call for help directly. The most appropriate way to make this possible is to have your app run in the background. An example is Siri on the iPhone. You can also set apps to run in the background on Microsoft Windows. In other words, even if the map app is not intentionally started, the map app waits while the smartphone is on while consuming minimal smartphone resources, and automatically registers the rescue request signal in advance when the conditions for sending the rescue request signal are met. You can send it to a rescue organization or an acquaintance.
본 발명의 제10 실시예는 자동적으로 발송되는 문자 메시지(text message)로 사전에 설정된 수신인(receiver)과 GPS 좌표를 공유(share)하는 방법에 관한 방법이며, 사용자가 긴급 연락 정보(emergency contact information)를 등록하는 단계와 지도 앱이 자동적으로 문자 메시지를 보내는 단계 및 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성된다.A tenth embodiment of the present invention relates to a method for sharing GPS coordinates with a receiver set in advance in an automatically sent text message, wherein the user provides emergency contact information (emergency contact information). ), the map app automatically sends a text message, and the recipient selects the received text message and executes the map app.
사용자가 긴급 연락 정보를 등록하는 단계는 사용자가 지도 앱을 시작하는 단계, 사용자가 긴급 연락 정보를 등록하는 메뉴를 실행하여 긴급 문자 메시지(emergency text message)를 수신할 긴급 연락 전화번호(emergency contact telephone number)를 포함하는 긴급 연락 정보를 입력하는 단계, 지도 앱이 긴급 연락 정보를 기기의 로컬 스토리지에 저장하는 단계를 포함하며, 실시예 9에서 긴급 연락 정보를 등록하는 단계와 사실상 동일하다.The step of registering emergency contact information by the user is the step of the user starting the map app, the user executing a menu for registering emergency contact information, and selecting an emergency contact telephone number to receive an emergency text message. number), and the map app stores the emergency contact information in the device's local storage, which is substantially the same as the step of registering the emergency contact information in the ninth embodiment.
다만, 제10 실시예에서는 지도 앱이 긴급 문자 메시지를 발송하는 조건을 개인화할 수 있다면 바람직할 것이다. 예를 들어 본인의 목소리로 "도와주세요"라고 외치는 경우에 긴급 문자 메시지가 발송되도록 한다든지, 바탕 화면의 앱 아이콘을 3초 이내에 3번을 두드리면(tap) 긴급 문자 메시지가 발송되도록 한다든지 하는 시나리오를 생각할 수 있다. 기본적으로 설정되는 조건으로는 스마트폰에 일정 이상의 충격이 가해진다든지, 일정 이상의 굉음이 발생하는 경우 등을 생각할 수 있다. 긴급 문자 메시지가 발송되는 조건은 이 중에 택일을 해야만 하는 것이 아니라, 하나 이상을 선택할 수 있도록 하는 것이 바람직할 것이다.However, in the tenth embodiment, it would be desirable if the map app could personalize the conditions for sending an emergency text message. For example, if you shout "Help" with your own voice, an emergency text message is sent, or if you tap the desktop app icon 3 times within 3 seconds, an emergency text message is sent. can think of Conditions that are basically set include a case in which an impact of a certain level or more is applied to the smartphone, or a case in which a certain amount of noise is generated. As for the condition for sending an urgent text message, it would be desirable to allow one or more to be selected, rather than having to select one of them.
도 71은 본 발명의 제10 실시예에서 자동적으로 문자 메시지를 발송하는 단계의 알고리즘을 보여주는 순서도이다. 지도 앱이 자동적으로 문자 메시지를 보내는 단계는 지도 앱이 백그라운드(background)에서 실행되며 자동적으로 긴급 문자 메시지를 발송할 조건이 충족되는지 모니터링(monitoring)하는 단계, 자동적으로 긴급 문자 메시지를 발송할 조건이 충족되면 지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계, 지도 앱이 위치 객체로부터 지리적인 좌표(geographic coordinates)를 읽어오는 단계, 지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계, 지도 앱이 사전에 등록된 긴급 연락 전화번호로 문자 메시지를 발송하는 단계를 포함한다.71 is a flowchart showing an algorithm of automatically sending a text message according to a tenth embodiment of the present invention. The step in which the map app automatically sends a text message is the step in which the map app runs in the background and monitors whether the conditions to automatically send an emergency text message are met. The map app calls the Geolocation API to obtain a position object, the map app reads geographic coordinates from the location object, and the map app retrieves the geographic coordinates Creating a text message body including a URL (Uniform Resource Locator) included as a search string, including sending a text message to a pre-registered emergency contact phone number by the map app do.
수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는 수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는 단계, 지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표를 추출하는(parse) 단계, 지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계를 포함한다.The step of the recipient selecting the received text message to launch the map app is the step of the recipient selecting the received text message to start the map app running as a web app. The map app obtains geographic coordinates from the search string included in the URL. A parsing step, and a step of displaying the initial screen so that a map area visible on the initial screen of the map app matches the geographical coordinates.
주소나 지리적인 좌표를 불러주는 대신에 간단한 방법으로 수신인에게 문자 메시지를 보내서 디지털 지도로 위치를 공유할 수 있다. 이는 방문객에게 찾아올 위치를 알려주거나, 배달원에게 배송지를 알려주는데 사용할 수도 있고, 119, 경찰청, 소방청 등이 구조·탐색 작전(search & rescue mission)을 하는데 사용할 수도 있다.Instead of calling out an address or geographic coordinates, you can simply send a text message to the recipient and share your location on a digital map. It can be used to tell visitors where to come, or to tell a delivery person where to go, or it can be used for search & rescue missions by 119, the National Police Agency, and the Fire and Rescue Agency.

Claims (49)

  1. 웹앱(web app)으로 실행되는 지도 앱(map app)의 초기 화면(initial screen)에 보이는 지도 영역(map area)을 기기(device)별로 개인화(personalization)하는 방법에 있어서,A method for personalizing a map area shown on the initial screen of a map app executed as a web app for each device,
    시작 지도 매개변수(start map parameters)를 저장하는 단계와 지도 앱을 실행하는 단계로 구성되되,It consists of saving start map parameters and running a map app,
    시작 지도 매개변수를 저장하는 단계는;Storing the starting map parameters includes;
    사용자(user)가 지도 앱과의 상호 작용을 통하여 지도 앱의 초기 화면에 보이게 할 지도 영역을 선택하는 단계,Selecting a map area to be displayed on the initial screen of the map app through interaction with the map app by a user;
    선택된 지도 영역을 시작 지도 영역(start map area)으로 등록하는 메뉴를 실행하는 단계,Executing a menu for registering the selected map area as a start map area;
    지도 앱이 시작 지도 영역에 해당하는 지리적인 좌표(geographic coordinates)와 줌(zoom)과 회전(rotation)을 포함하는 지도 매개변수(map parameters)를 기기의 로컬 스토리지(local storage)에 시작 지도 매개변수로 저장하는 단계를 포함하고,The Maps app stores map parameters, including geographic coordinates corresponding to the starting map area and zoom and rotation, to the device's local storage. Including the step of saving as,
    지도 앱을 실행하는 단계는;The step of running the map app is;
    사용자가 지도 앱을 시작하는 단계,When the user launches the map app,
    지도 앱이 기기의 로컬 스토리지에 저장된 시작 지도 매개변수가 있는지 확인하는 단계,The map app checks if there are starting map parameters stored in the device's local storage;
    저장된 시작 지도 매개변수가 있으면 시작 지도 매개변수를 목표 지도 매개변수(goal map parameters)로 지정하고, 저장된 시작 지도 매개변수가 없으면 기본 지도 매개변수(default map parameters)를 목표 지도 매개변수로 지정하는 단계,Specifying the starting map parameters as goal map parameters if there are saved starting map parameters, and specifying the default map parameters as goal map parameters if there are no saved starting map parameters. ,
    지도 앱의 초기 화면에 보이는 지도 영역이 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of displaying the initial screen so that the map area visible on the initial screen of the map app meets the target map parameters,
    웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 기기별로 개인화하는 방법.How to personalize the map area shown on the initial screen of the map app running as a web app for each device.
  2. 제1항에 있어서,According to claim 1,
    시작 지도 영역에 해당하는 지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍(pair)으로 주어지는 것을 특징으로 하는,Characterized in that the geographical coordinates corresponding to the starting map area are given as a pair of longitude and geodetic latitude,
    웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 기기별로 개인화하는 방법.How to personalize the map area shown on the initial screen of the map app running as a web app for each device.
  3. 제1항에 있어서,According to claim 1,
    시작 지도 영역에 해당하는 지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍(pair)과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,The geographic coordinates corresponding to the starting map area are given as a pair of longitude and geodetic latitude and a pair of easting and northing distances that can be converted to each other. ,
    웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 기기별로 개인화하는 방법.How to personalize the map area shown on the initial screen of the map app running as a web app for each device.
  4. 제3항에 있어서,According to claim 3,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000020
    Figure PCTKR2022007997-appb-img-000020
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000021
    Figure PCTKR2022007997-appb-img-000021
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 기기별로 개인화하는 방법.How to personalize the map area shown on the initial screen of the map app running as a web app for each device.
  5. 제1항에 있어서,According to claim 1,
    시작 지도 매개변수를 저장하는 단계는;Storing the starting map parameters includes;
    앱 서버(app server)에 사용자 로그인(user login)이 되어 있는지 확인하는 단계,Checking whether user login is in the app server,
    사용자 로그인이 되어 있으면 시작 지도 매개변수를 앱 서버에 저장하는 단계를 포함하고,If the user is logged in, saving the starting map parameters to the app server;
    지도 앱을 실행하는 단계는;The step of running the map app is;
    앱 서버에 사용자 로그인이 되어 있는지 확인하는 단계,Steps to check if the user is logged in to the app server,
    사용자 로그인이 되어 있으면 앱 서버에 저장된 시작 지도 매개변수가 있는지 확인하는 단계,If the user is logged in, checking whether there are starting map parameters stored in the app server;
    앱 서버에 저장된 시작 지도 매개변수가 있으면 앱 서버에 저장된 시작 지도 매개변수를 우선적으로 목표 지도 매개변수로 지정하는 단계를 포함하는 것을 특징으로 하는,If there is a starting map parameter stored in the app server, specifying the starting map parameter stored in the app server as a target map parameter preferentially.
    웹앱으로 실행되는 지도 앱의 초기 화면에 보이는 지도 영역을 기기별로 개인화하는 방법.How to personalize the map area shown on the initial screen of the map app running as a web app for each device.
  6. 웹앱(web app)으로 실행되는 지도 앱(map app)에 보이는 지도 영역(map area)을 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)하는 방법에 있어서,In a method of sharing a map area visible in a map app running as a web app by sending a text message to a receiver,
    송신인(sender)이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성되되,It consists of a sender sending a text message and a recipient selecting the received text message and launching a map app.
    송신인이 문자 메시지를 보내는 단계는;The sender sends a text message;
    송신인이 지도 앱과의 상호 작용을 통하여 수신인의 기기(device)에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이게 할 지도 영역을 선택하는 단계,Selecting a map area to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app by the sender;
    송신인이 선택된 지도 영역을 문자 메시지로 보내는 메뉴를 실행하는 단계,The sender executing a menu to send a selected map area as a text message;
    지도 앱이 선택된 지도 영역에 해당하는 지리적인 좌표(geographic coordinates)와 줌(zoom)과 회전(rotation)을 포함하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계,A uniform resource URL (URL) that includes map parameters, including zoom and rotation, as well as geographic coordinates corresponding to the map area selected by the Maps app as a search string. Creating a text message body including a locator;
    송신인이 수신인을 선택하여 문자 메시지를 발송하는 단계를 포함하고,The sender selects a recipient and sends the text message,
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는;The step of executing the map app by selecting the received text message by the recipient;
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 시작(launch)하는 단계,Step of the recipient selecting the received text message to launch the map app;
    지도 앱이 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하는(parse) 단계,A step in which the map app extracts (parses) map parameters from the search string included in the URL;
    지도 앱의 초기 화면에 보이는 지도 영역이 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the extracted map parameters,
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  7. 제6항에 있어서,According to claim 6,
    선택된 지도 영역에 해당하는 지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographical coordinates corresponding to the selected map area are given as a pair of longitude and geodetic latitude,
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  8. 제6항에 있어서,According to claim 6,
    선택된 지도 영역에 해당하는 지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographical coordinates corresponding to the selected map area are given as a pair of longitude and geodetic latitude and a pair of easting and northing distances that can be converted to each other,
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  9. 제8항에 있어서,According to claim 8,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000022
    Figure PCTKR2022007997-appb-img-000022
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000023
    Figure PCTKR2022007997-appb-img-000023
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  10. 제6항에 있어서,According to claim 6,
    지도 앱은 프로그레시브 웹앱(PWA, Progressive Web App)인 것을 특징으로 하는,Characterized in that the map app is a Progressive Web App (PWA),
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  11. 제6항에 있어서,According to claim 6,
    지도 앱의 초기 화면에 보이는 지도 영역이 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계는,The step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the extracted map parameters,
    추출된 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계,Storing the extracted map parameters in session storage;
    미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계,Determining a type of device and a screen mode using a media query;
    기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계,Launching a landing page suitable for the type of device and screen orientation;
    랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계,Retrieving map parameters stored in session storage on the landing page;
    세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 저장하는 단계,storing map parameters obtained from session storage as target map parameters;
    목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of setting a map object (map object) to match the target map parameters,
    웹앱으로 실행되는 지도 앱에 보이는 지도 영역을 문자 메시지로 보내서 수신인과 공유하는 방법.How to share a map area visible on a map app running as a web app with a recipient by sending a text message.
  12. 웹앱(web app)으로 실행되는 지도 앱(map app)에 보이는 실내·외의 장소(place)를 기기(device)별로 개인화(personalization)하는 방법에 있어서,A method for personalizing an indoor/outdoor place shown in a map app running as a web app for each device, the method comprising:
    시작 지도 매개변수(start map parameters)를 저장하는 단계와 지도 앱을 실행하는 단계로 구성되되,It consists of saving start map parameters and running a map app,
    시작 지도 매개변수를 저장하는 단계는;Storing the starting map parameters includes;
    사용자(user)가 지도 앱과의 상호 작용을 통하여 지도 앱의 초기 화면에 보이게 할 장소를 선택하는 단계,Selecting a place to be displayed on the initial screen of the map app through interaction with the map app by the user;
    사용자가 선택된 장소를 시작 장소(start place)로 등록하는 메뉴를 실행하는 단계,Executing a menu for registering a place selected by a user as a start place;
    지도 앱이 시작 장소에 해당하는 지도 매개변수(map parameters)를 기기의 로컬 스토리지(local storage)에 시작 지도 매개변수로 저장하는 단계를 포함하고,The map app stores map parameters corresponding to the starting location as starting map parameters in local storage of the device;
    지도 앱을 실행하는 단계는;The step of running the map app is;
    사용자가 지도 앱을 시작하는 단계,When the user launches the map app,
    지도 앱이 기기의 로컬 스토리지에 저장된 시작 지도 매개변수가 있는지 확인하는 단계,The map app checks if there are starting map parameters stored in the device's local storage;
    저장된 시작 지도 매개변수가 있으면 시작 지도 매개변수를 목표 지도 매개변수(goal map parameters)로 지정하고, 저장된 시작 지도 매개변수가 없으면 기본 지도 매개변수(default map parameters)를 목표 지도 매개변수로 지정하는 단계,Specifying the starting map parameters as goal map parameters if there are saved starting map parameters, and specifying the default map parameters as goal map parameters if there are no saved starting map parameters. ,
    초기 화면에 보이는 장소가 목표 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of displaying the initial screen so that the place visible on the initial screen matches the target map parameters,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 기기별로 개인화하는 방법.How to personalize the indoor and outdoor places shown in the map app running as a web app for each device.
  13. 제12항에 있어서,According to claim 12,
    시작 장소에 해당하는 지도 매개변수(map parameters)는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID)와 층(floor)을 포함하는 것을 특징으로 하는, Characterized in that the map parameters corresponding to the starting place include geographical coordinates, building ID and floor,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 기기별로 개인화하는 방법.How to personalize the indoor and outdoor places shown in the map app running as a web app for each device.
  14. 제13항에 있어서,According to claim 13,
    시작 장소에 해당하는 지도 매개변수는 지도 앱의 초기 화면에 보이게 할 지도 영역(map area)의 줌(zoom)과 회전(rotation)을 포함하는 것을 특징으로 하는,Characterized in that the map parameter corresponding to the starting place includes zoom and rotation of the map area to be displayed on the initial screen of the map app.
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 기기별로 개인화하는 방법.How to personalize the indoor and outdoor places shown in the map app running as a web app for each device.
  15. 제13항에 있어서,According to claim 13,
    지리적인 좌표(geographic coordinates)는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍(pair)이나 경도 및 측지 위도의 쌍과 상호변환되는 동향거리(easting)와 북향거리(northing)의 쌍 중 어느 하나로 주어지는 것을 특징으로 하는,Geographic coordinates are defined as either a pair of longitude and geodetic latitude, or a pair of easting and northing interconverted with a pair of longitude and geodetic latitude. Characterized in that one is given,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 기기별로 개인화하는 방법.How to personalize the indoor and outdoor places shown in the map app running as a web app for each device.
  16. 제15항에 있어서,According to claim 15,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000024
    Figure PCTKR2022007997-appb-img-000024
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000025
    Figure PCTKR2022007997-appb-img-000025
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 기기별로 개인화하는 방법.How to personalize the indoor and outdoor places shown in the map app running as a web app for each device.
  17. 웹앱(web app)으로 실행되는 지도 앱(map app)에 보이는 실내·외의 장소(place)를 문자 메시지(text message)로 보내서 수신인(receiver)과 공유(share)하는 방법에 있어서,In a method of sending an indoor/outdoor place visible on a map app running as a web app as a text message to share with a receiver,
    송신인(sender)이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성되되,It consists of a sender sending a text message and a recipient selecting the received text message and launching a map app.
    송신인이 문자 메시지를 보내는 단계는;The sender sends a text message;
    송신인이 지도 앱을 시작하는 단계,the sender launching the map app;
    송신인이 지도 앱과의 상호 작용을 통하여 수신인의 기기(device)에서 웹앱으로 실행되는 지도 앱의 초기 화면에 보이게 할 장소(place)를 선택하는 단계,The sender selects a place to be displayed on the initial screen of the map app running as a web app on the recipient's device through interaction with the map app;
    송신인이 선택된 장소를 문자 메시지로 보내는 메뉴를 실행하는 단계,The sender executes a menu to send a text message to the selected place;
    지도 앱이 선택된 장소에 해당하는 지도 매개변수(map parameters)를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계,Creating a text message body including a URL (Uniform Resource Locator) including map parameters corresponding to the selected place by the map app as a search string;
    송신인이 수신인을 선택하여 문자 메시지를 발송하는 단계를 포함하고,The sender selects a recipient and sends the text message,
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는;The step of executing the map app by selecting the received text message by the recipient;
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 시작(launch)하는 단계,Step of the recipient selecting the received text message to launch the map app;
    지도 앱이 URL에 포함된 검색 문자열에서 지도 매개변수를 추출하는(parse) 단계,A step in which the map app extracts (parses) map parameters from the search string included in the URL;
    지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that, including the step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  18. 제17항에 있어서,According to claim 17,
    지도 앱의 지도 화면(map screen)에 중심 마커(center marker)를 구비하는 것을 특징으로 하는,Characterized in that a center marker is provided on the map screen of the map app,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  19. 제17항에 있어서,According to claim 17,
    선택된 장소에 해당하는 지도 매개변수는 지리적인 좌표(geographic coordinates)와 건물 아이디(building ID)와 층(floor)을 포함하는 것을 특징으로 하는,Characterized in that the map parameters corresponding to the selected place include geographic coordinates, building ID and floor,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  20. 제19항에 있어서,According to claim 19,
    선택된 장소에 해당하는 지도 매개변수는 지도 앱의 초기 화면에 보이게 할 지도 영역(map area)의 줌(zoom)과 회전(rotation)을 포함하는 것을 특징으로 하는,Characterized in that the map parameters corresponding to the selected place include zoom and rotation of the map area to be displayed on the initial screen of the map app.
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  21. 제19항에 있어서,According to claim 19,
    지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that geographical coordinates are given as a pair of longitude and geodetic latitude,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  22. 제19항에 있어서,According to claim 19,
    지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographic coordinates are given as a pair of longitude and geodetic latitude and a pair of interconvertible easting and northing distances,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  23. 제22항에 있어서,The method of claim 22,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000026
    Figure PCTKR2022007997-appb-img-000026
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000027
    Figure PCTKR2022007997-appb-img-000027
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  24. 제19항에 있어서,According to claim 19,
    건물 아이디(building ID)는 뷰의 중심(view center)이 건물의 외곽선 안에 위치하는 건물 - 이하, 중앙의 건물(building at view center)이라 지칭함 - 이 존재하는 경우에는 자연수(natural number)로 주어지고,The building ID is given as a natural number when a building whose view center is located within the outline of the building - hereinafter referred to as a building at view center - exists, ,
    중앙의 건물이 존재하지 않는 경우에는 자연수가 아닌 수(number)로 주어지는 것을 특징으로 하는,Characterized in that it is given as a number other than a natural number when the central building does not exist,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  25. 제19항에 있어서,According to claim 19,
    층(floor)은 뷰의 중심(view center)이 건물의 외곽선 안에 위치하는 건물 - 이하, 중앙의 건물(building at view center)이라 지칭함 - 이 존재하지 않는 경우에는 0으로 주어지고,The floor is given as 0 when a building whose view center is located within the outline of the building - hereinafter referred to as a building at view center - does not exist,
    중앙의 건물이 있고 실내 지도(indoor map)가 표시된 경우에는 정수(integer)로 주어지며,If there is a central building and an indoor map is displayed, it is given as an integer,
    중앙의 건물이 존재하지만 실내 지도가 표시되지 않는 경우에는 정수가 아닌 수(number)로 주어지는 것을 특징으로 하는,Characterized in that it is given as a non-integer number when the central building exists but the indoor map is not displayed,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  26. 제17항에 있어서,According to claim 17,
    지도 앱은 프로그레시브 웹앱(PWA, Progressive Web App)인 것을 특징으로 하는,Characterized in that the map app is a Progressive Web App (PWA),
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  27. 제17항에 있어서,According to claim 17,
    지도 앱의 초기 화면에 보이는 장소가 추출된 지도 매개변수에 부합하도록 초기 화면을 표시하는 단계는,The step of displaying the initial screen so that the place visible on the initial screen of the map app matches the extracted map parameters,
    추출된 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계,Storing the extracted map parameters in session storage;
    미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계,Determining a type of device and a screen mode using a media query;
    기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작(launch)하는 단계,Launching a landing page suitable for the type of device and screen orientation;
    랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계,Retrieving map parameters stored in session storage on the landing page;
    세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 지정하는 단계,specifying map parameters obtained from session storage as target map parameters;
    목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of setting a map object (map object) to match the target map parameters,
    웹앱으로 실행되는 지도 앱에 보이는 실내·외의 장소를 문자 메시지로 보내서 수신인과 공유하는 방법.A method of sharing indoor and outdoor places shown in a map app running as a web app with a recipient by sending a text message.
  28. 문자 메시지(text message)로 GPS 좌표를 공유(share)하는 방법에 있어서,In the method of sharing GPS coordinates by text message,
    송신인이 문자 메시지를 보내는 단계와 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성되되,It consists of the sender sending a text message and the recipient selecting the received text message and launching the map app.
    송신인이 문자 메시지를 보내는 단계는;The sender sends a text message;
    송신인이 지도 앱을 시작하는 단계,the sender launching the map app;
    송신인이 GPS 좌표를 문자 메시지로 보내는 메뉴를 실행하는 단계,The sender executing a menu to send GPS coordinates as a text message;
    지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계,Acquiring a position object by calling a geolocation API by the map app;
    지도 앱이 위치 객체로부터 지리적인 좌표(geographic coordinates)를 읽어오는 단계,The map app reading geographic coordinates from the location object;
    지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계,Creating a text message body including a URL (Uniform Resource Locator) including geographic coordinates as a search string by the map app;
    송신인이 수신인을 선택하여 문자 메시지를 발송하는 단계를 포함하고,The sender selects a recipient and sends the text message,
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는;The step of executing the map app by selecting the received text message by the recipient;
    수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는(launch) 단계,Step of launching (launching) a map app running as a web app by selecting the received text message by the recipient;
    지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표를 추출하는(parse) 단계,A step in which the map app extracts (parses) geographical coordinates from the search string included in the URL;
    지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it includes the step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  29. 제28항에 있어서,According to claim 28,
    지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that geographical coordinates are given as a pair of longitude and geodetic latitude,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  30. 제28항에 있어서,According to claim 28,
    지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographic coordinates are given as a pair of longitude and geodetic latitude and a pair of interconvertible easting and northing distances,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  31. 제30항에 있어서,31. The method of claim 30,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000028
    Figure PCTKR2022007997-appb-img-000028
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000029
    Figure PCTKR2022007997-appb-img-000029
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  32. 제28항에 있어서,According to claim 28,
    지도 앱은 프로그레시브 웹앱(PWA, Progressive Web App)인 것을 특징으로 하는,Characterized in that the map app is a Progressive Web App (PWA),
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  33. 제28항에 있어서,According to claim 28,
    지도 앱의 초기 화면에 보이는 지도 영역이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계는,The step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates,
    지리적인 좌표에 줌과 회전의 기본값을 추가한 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계,Storing map parameters with default values for zoom and rotation added to geographic coordinates in session storage;
    미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계,Determining a type of device and a screen mode using a media query;
    기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계,Launching a landing page suitable for the type of device and screen orientation;
    랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계,Retrieving map parameters stored in session storage on the landing page;
    세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 저장하는 단계,storing map parameters obtained from session storage as target map parameters;
    목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of setting a map object (map object) to match the target map parameters,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  34. 제28항에 있어서,According to claim 28,
    기기(device)는 스마트폰(smart phone)과 문자 메시지 서버(text message server) 중 어느 하나인 것을 특징으로 하는,Characterized in that the device is any one of a smart phone and a text message server,
    문자 메시지로 GPS 좌표를 공유하는 방법.How to share GPS coordinates by text message.
  35. 문자 메시지(text message)로 사전에 등록된 수신인(receiver)과 GPS 좌표를 공유(share)하는 방법에 있어서,A method for sharing GPS coordinates with a pre-registered receiver by text message,
    송신인이 긴급 연락 정보(emergency contact information)를 등록하는 단계와 송신인이 문자 메시지를 보내는 단계 및 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성되되,It consists of registering emergency contact information by the sender, sending a text message by the sender, and executing a map app by selecting the received text message by the recipient.
    송신인이 긴급 연락 정보를 등록하는 단계는;The sender registering emergency contact information;
    송신인이 지도 앱을 시작하는 단계,the sender launching the map app;
    송신인이 긴급 연락 정보를 등록하는 메뉴를 실행하여 긴급 문자 메시지(emergency text message)를 수신할 긴급 연락 전화번호(emergency contact telephone number)를 포함하는 긴급 연락 정보를 입력하는 단계,Entering emergency contact information including an emergency contact telephone number to receive an emergency text message by executing a menu in which the sender registers emergency contact information;
    지도 앱이 긴급 연락 정보를 기기(device)의 로컬 스토리지에 저장하는 단계를 포함하고,the map app saving the emergency contact information to the device's local storage;
    송신인이 문자 메시지를 보내는 단계는;The sender sends a text message;
    송신인이 지도 앱을 시작하는 단계,the sender launching the map app;
    송신인이 GPS 좌표를 문자 메시지로 보내는 메뉴를 실행하는 단계,The sender executing a menu to send GPS coordinates as a text message;
    지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계,Acquiring a position object by calling a geolocation API by the map app;
    지도 앱이 위치 객체로부터 지리적인 좌표(geographic coordinates)를 읽어오는 단계,The map app reading geographic coordinates from the location object;
    지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계,Creating a text message body including a URL (Uniform Resource Locator) including geographic coordinates as a search string by the map app;
    지도 앱이 사전에 등록된 긴급 연락 전화번호로 문자 메시지를 발송하는 단계를 포함하고,The map app sends a text message to a pre-registered emergency contact number;
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는;The step of executing the map app by selecting the received text message by the recipient;
    수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는(launch) 단계,Step of launching (launching) a map app running as a web app by selecting the received text message by the recipient;
    지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표를 추출하는(parse) 단계,A step in which the map app extracts (parses) geographical coordinates from the search string included in the URL;
    지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it includes the step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  36. 제35항에 있어서,The method of claim 35,
    지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographic coordinates are given as a pair of longitude and geodetic latitude,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  37. 제35항에 있어서,The method of claim 35,
    지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographic coordinates are given as a pair of longitude and geodetic latitude and a pair of interconvertible easting and northing distances,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  38. 제37항에 있어서,38. The method of claim 37,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000030
    Figure PCTKR2022007997-appb-img-000030
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000031
    Figure PCTKR2022007997-appb-img-000031
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  39. 제35항에 있어서,The method of claim 35,
    지도 앱은 프로그레시브 웹앱(PWA, Progressive Web App)인 것을 특징으로 하는,Characterized in that the map app is a Progressive Web App (PWA),
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  40. 제35항에 있어서,The method of claim 35,
    지도 앱의 초기 화면에 보이는 지도 영역이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계는,The step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates,
    지리적인 좌표에 줌과 회전의 기본값을 추가한 지도 매개변수를 세션 스토리지(session storage)에 저장하는 단계,Storing map parameters with default values for zoom and rotation added to geographic coordinates in session storage;
    미디어 쿼리(media query)를 이용하여 기기(device)의 종류(type)와 화면 방향(screen mode)을 결정하는 단계,Determining a type of device and a screen mode using a media query;
    기기의 종류와 화면 방향에 맞는 랜딩 페이지(landing page)를 시작하는(launch) 단계,Launching a landing page suitable for the type of device and screen orientation;
    랜딩 페이지에서 세션 스토리지에 저장된 지도 매개변수를 가져오는 단계,Retrieving map parameters stored in session storage on the landing page;
    세션 스토리지에서 가져온 지도 매개변수를 목표 지도 매개변수로 지정하는 단계,specifying map parameters obtained from session storage as target map parameters;
    목표 지도 매개변수에 부합하도록 지도 객체(map object)를 설정하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it comprises the step of setting a map object (map object) to match the target map parameters,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  41. 제35항에 있어서,The method of claim 35,
    기기(device)는 스마트폰(smart phone)과 문자 메시지 서버(text message server) 중 어느 하나인 것을 특징으로 하는,Characterized in that the device is any one of a smart phone and a text message server,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  42. 제35항에 있어서,The method of claim 35,
    긴급 연락 정보는 구조 대상자의 이름, 구조 대상자의 신원 확인을 위한 개인 식별 번호, 구조 당국의 전화번호, 구조 당국이 필요한 정보를 얻을 수 있는 가족이나 지인의 이름과 전화번호, 구조 당국에서 구조 대상자의 개인 정보를 조회하는 것에 동의하는지의 여부들 중 어느 하나 이상을 포함하는 것을 특징으로 하는,Emergency contact information includes the name of the person to be rescued, a personal identification number for identification of the person to be rescued, the phone number of the rescue authority, the name and phone number of a family member or acquaintance from whom the rescue authority can obtain the necessary information, and the rescue authority of the person to be rescued. Characterized in that it includes any one or more of whether or not to agree to inquire personal information,
    문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.How to share GPS coordinates with pre-registered recipients by text message.
  43. 자동적으로 발송되는 문자 메시지(text message)로 사전에 등록된 수신인(receiver)과 GPS 좌표를 공유(share)하는 방법에 있어서,In the method of sharing GPS coordinates with a pre-registered receiver in a text message that is automatically sent,
    사용자가 긴급 연락 정보(emergency contact information)를 등록하는 단계와 지도 앱이 자동적으로 문자 메시지를 보내는 단계 및 수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계로 구성되되,It consists of the user registering emergency contact information, the map app automatically sending a text message, and the recipient selecting the received text message to launch the map app.
    사용자가 긴급 연락 정보를 등록하는 단계는;Registering emergency contact information by the user;
    사용자가 지도 앱을 시작하는 단계,When the user launches the Maps app,
    사용자가 긴급 연락 정보를 등록하는 메뉴를 실행하여 문자 메시지(text message)를 수신할 긴급 연락 전화번호(emergency contact telephone number)를 포함하는 긴급 연락 정보를 입력하는 단계,Entering emergency contact information including an emergency contact telephone number to receive a text message by a user executing a menu for registering emergency contact information;
    지도 앱이 긴급 연락 정보를 기기의 로컬 스토리지에 저장하는 단계를 포함하고,The Maps app saves the emergency contact information to the device's local storage;
    지도 앱이 자동적으로 문자 메시지를 보내는 단계는;The steps of the map app automatically sending a text message are;
    지도 앱이 백그라운드(background)에서 실행되며 자동적으로 문자 메시지를 발송할 조건이 충족되는지 모니터링(monitoring)하는 단계,A step of monitoring whether the map app is running in the background and the conditions for automatically sending text messages are met;
    자동적으로 문자 메시지를 발송할 조건이 충족되면 지도 앱이 지오로케이션 API(Geolocation API)를 호출하여 위치 객체(position object)를 획득하는 단계,When a condition for automatically sending a text message is met, the map app calls a geolocation API to obtain a position object;
    지도 앱이 위치 객체로부터 지리적인 좌표(geographic coordinates)를 읽어오는 단계,The map app reading geographic coordinates from the location object;
    지도 앱이 지리적인 좌표를 검색 문자열(search string)로 포함하는 URL(Uniform Resource Locator)을 포함하는 문자 메시지 몸체(text message body)를 작성하는 단계,Creating a text message body including a URL (Uniform Resource Locator) including geographic coordinates as a search string by the map app;
    지도 앱이 사전에 등록된 긴급 연락 전화번호로 문자 메시지를 발송하는 단계를 포함하고,The map app sends a text message to a pre-registered emergency contact number;
    수신인이 수신된 문자 메시지를 선택하여 지도 앱을 실행하는 단계는;The step of executing the map app by selecting the received text message by the recipient;
    수신인이 수신된 문자 메시지를 선택하여 웹앱으로 실행되는 지도 앱을 시작하는(launch) 단계,Step of launching (launching) a map app running as a web app by selecting the received text message by the recipient;
    지도 앱이 URL에 포함된 검색 문자열에서 지리적인 좌표를 추출하는(parse) 단계,A step in which the map app extracts (parses) geographical coordinates from the search string included in the URL;
    지도 앱의 초기 화면에 보이는 지도 영역(map area)이 지리적인 좌표에 부합하도록 초기 화면을 표시하는 단계를 포함하는 것을 특징으로 하는,Characterized in that it includes the step of displaying the initial screen so that the map area visible on the initial screen of the map app matches the geographical coordinates,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  44. 제43항에 있어서,44. The method of claim 43,
    지리적인 좌표는 경도(longitude)와 측지 위도(geodetic latitude)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that geographical coordinates are given as a pair of longitude and geodetic latitude,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  45. 제43항에 있어서,44. The method of claim 43,
    지리적인 좌표는 경도(longitude) 및 측지 위도(geodetic latitude)의 쌍과 상호변환이 가능한 동향거리(easting)와 북향거리(northing)의 쌍으로 주어지는 것을 특징으로 하는,Characterized in that the geographic coordinates are given as a pair of longitude and geodetic latitude and a pair of interconvertible easting and northing distances,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  46. 제 45항에 있어서,46. The method of claim 45,
    북향거리(northing) N은 다음과 같이 주어지되,The northing distance N is given by
    Figure PCTKR2022007997-appb-img-000032
    Figure PCTKR2022007997-appb-img-000032
    여기서 R은 지구의 평균 반경이고, φ는 측지 위도이며,where R is the mean radius of the Earth, φ is the geodetic latitude,
    동향거리(easting) E는 다음과 같이 주어지되,The easting distance E is given by
    Figure PCTKR2022007997-appb-img-000033
    Figure PCTKR2022007997-appb-img-000033
    여기서 λ는 경도인 것을 특징으로 하는,Where λ is characterized in that the hardness,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  47. 제 43항에 있어서,44. The method of claim 43,
    지도 앱은 프로그레시브 웹앱(PWA, Progressive Web App)인 것을 특징으로 하는,Characterized in that the map app is a Progressive Web App (PWA),
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  48. 제 43항에 있어서,44. The method of claim 43,
    기기(device)는 스마트폰(smart phone)과 문자 메시지 서버(text message server) 중 어느 하나인 것을 특징으로 하는,Characterized in that the device is any one of a smart phone and a text message server,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
  49. 제 43항에 있어서,44. The method of claim 43,
    긴급 연락 정보는 구조 대상자의 이름, 구조 대상자의 신원 확인을 위한 개인 식별 번호, 구조 당국의 전화 번호, 구조 당국이 필요한 정보를 얻을 수 있는 가족이나 지인의 이름과 전화번호, 구조 당국에서 구조 대상자의 개인 정보를 조회하는 것에 동의하는지의 여부들 중 어느 하나 이상을 포함하는 것을 특징으로 하는,Emergency contact information includes the name of the person to be rescued, a personal identification number for identification of the person to be rescued, the phone number of the rescue authority, the name and phone number of a family member or acquaintance from whom the rescue authority can obtain the necessary information, and the rescue authority of the person to be rescued. Characterized in that it includes any one or more of whether or not to agree to inquire personal information,
    자동적으로 발송되는 문자 메시지로 사전에 등록된 수신인과 GPS 좌표를 공유하는 방법.A method of sharing GPS coordinates with pre-registered recipients in an automatically sent text message.
PCT/KR2022/007997 2021-06-08 2022-06-07 Method for personalizing place being shown on initial screen of digital map and digital map system using same WO2022260390A2 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2021-0073937 2021-06-08
KR20210073937 2021-06-08
KR10-2021-0104855 2021-08-09
KR20210104855 2021-08-09
KR10-2022-0065721 2022-05-28
KR1020220065721A KR102447172B1 (en) 2021-06-08 2022-05-28 Method of customizing a place shown in an initial screen of digital map and digital map system using the same

Publications (2)

Publication Number Publication Date
WO2022260390A2 true WO2022260390A2 (en) 2022-12-15
WO2022260390A3 WO2022260390A3 (en) 2023-02-02

Family

ID=83452678

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/007997 WO2022260390A2 (en) 2021-06-08 2022-06-07 Method for personalizing place being shown on initial screen of digital map and digital map system using same

Country Status (2)

Country Link
KR (1) KR102447172B1 (en)
WO (1) WO2022260390A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102512261B1 (en) * 2021-11-04 2023-03-21 주식회사 에스360브이알 Location information sharing system and methods for the same

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20000268A (en) 2000-02-09 2001-08-10 Benefon Oyj Location system and procedure
US7428476B1 (en) 2001-08-10 2008-09-23 Yasumi Capital, Llc System and method of simulating with respect to spheroid reference models using local surface coordinates
KR100379946B1 (en) 2001-09-10 2003-04-11 Han Seok Kim Emergency paging processing apparatus and method using mobile communication network
US7353034B2 (en) 2005-04-04 2008-04-01 X One, Inc. Location sharing and tracking using mobile phones or other wireless devices
KR100861652B1 (en) * 2006-11-17 2008-10-02 엔에이치엔(주) Map service system and method
US7742774B2 (en) 2007-01-11 2010-06-22 Virgin Mobile Usa, L.P. Location-based text messaging
US8369867B2 (en) 2008-06-30 2013-02-05 Apple Inc. Location sharing
KR101312294B1 (en) 2011-06-21 2013-10-14 삼성에스디에스 주식회사 Indoor map database, apparatus and method for providing map service, apparatus and method for providing indoor map service using open API, and apparatus and method for producing indoor map
US8464181B1 (en) 2012-07-03 2013-06-11 Google Inc. Floor selection on an interactive digital map
GB2513196A (en) 2013-04-19 2014-10-22 What3Words Ltd A method and apparatus for identifying and communicating locations
US20150019625A1 (en) 2013-07-09 2015-01-15 Google Inc. Providing indoor map data to a client computing device
KR101646166B1 (en) * 2013-12-26 2016-08-08 (주)티아이스퀘어 System and method for providing map sharing services for location information sharing
KR20160027605A (en) * 2014-09-01 2016-03-10 한국교통연구원 Method for locating indoor position of user device and device for the same
KR101700868B1 (en) * 2014-12-24 2017-01-31 주식회사 케이티 Method for providing web service through telephone number, device and system
CN106484830A (en) 2016-09-29 2017-03-08 北京百度网讯科技有限公司 Position sharing method, device and system
KR101983082B1 (en) * 2016-11-21 2019-05-30 파파야 주식회사 Personal Information Appratus and System for Sharing Map-Based User Creating Contents for SNS and Operating Method for the Same
KR102234723B1 (en) 2019-10-09 2021-04-01 주식회사 에스360브이알 Methods of determining geological locations and database and database of databases using the same
KR102344087B1 (en) 2020-02-20 2021-12-29 주식회사 에스360브이알 Digital map based online platform

Also Published As

Publication number Publication date
KR102447172B1 (en) 2022-09-26
WO2022260390A3 (en) 2023-02-02

Similar Documents

Publication Publication Date Title
WO2016200114A1 (en) Electronic device and method for displaying electronic map in electronic device
WO2021071279A2 (en) Method for specifying geographical location, database using same, and database of database
WO2010024584A4 (en) Object recognition system, wireless internet system having same, and object-based wireless communication service method using same
CN102754097B (en) Method and apparatus for presenting a first-person world view of content
CN100433050C (en) Mobile communication system, mobile terminal device, fixed station device, character recognition device and method, and program
JP4647621B2 (en) Location status display for mobile phones
USRE41174E1 (en) Information retrieval apparatus and method
JP5039379B2 (en) Handheld object selection device
WO2015119371A1 (en) Device and method for providing poi information using poi grouping
WO2016048103A1 (en) Device and method for providing content to user
WO2015174764A1 (en) System for providing personalized information and method of providing the personalized information
KR20070018885A (en) M0bile terminal having map display functi0n, map display system, inf0rmati0n distributi0n server, and program
KR20130114268A (en) Human assisted techniques for providing local maps and location-specific annotated data
JP2001023076A (en) Portable terminal with passenger navigation function
WO2022260390A2 (en) Method for personalizing place being shown on initial screen of digital map and digital map system using same
EP3143782A1 (en) System for providing personalized information and method of providing the personalized information
US20080163057A1 (en) Method For Displaying Objects to be Positioned on a Display of a Positioning Device, a Positioning Device and an Application
WO2011093669A2 (en) Object recognition system and object recognition method using same
JP3125771B2 (en) Method and system for providing terminal peripheral information
WO2023167454A1 (en) Indoor map using actual-measurement-based floor plan, and generation method therefor
CN105917329B (en) Information display device and information display program
WO2010151001A2 (en) Navigation method for travelers and system therefor
JP4637133B2 (en) Guidance system, guidance server device, guidance method and program implementing the method
WO2021167422A1 (en) Digital map-based online platform
JP3511980B2 (en) Information display method and system using network

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22820518

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22820518

Country of ref document: EP

Kind code of ref document: A2