Method and system for creating site drawings
The method and system facilitate easy site plan creation and modification on mobile devices by integrating user inputs in JSON format, addressing the operational challenges of CAD programs in mobile environments and enhancing user experience.
Patent Information
- Application Number
- JP2024539036
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-05-13
- Publication Date
- 2025-01-28
- Estimated Expiration
- 2042-05-13
AI Technical Summary
Existing CAD programs for creating architectural drawings are difficult to operate and not efficiently deployed in mobile computing environments, requiring specialized tools and expertise for telecommunications site layouts, which lack integration of telecommunications-specific shapes, objects, and symbols.
A method and system for creating site drawings using mobile applications that allow users to create standing and plan views without third-party tools, utilizing pre-drawing images, camera captures, or satellite views, and adding network elements, with user inputs stored in JavaScript Object Notation (JSON) format.
Enables easy and convenient site plan creation and modification on mobile devices, reducing technical complexity and latency, improving user experience with faster execution times compared to traditional CAD methodologies.
Smart Images

Figure 2025502771000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a method and system for creating a site drawing. [Background technology]
[0002] Computer-aided design (CAD) technology has been implemented to replace the manual drafting of architectural drawings with a computerized process. However, CAD programs are notoriously difficult for inexperienced users to operate and have not been efficiently deployed in mobile computing environments.
[0003] Furthermore, related art methods and systems for drawing layout plans of telecommunications sites (e.g., locations where telecommunications equipment will potentially be installed) require costly external tools and specific expertise to use, and furthermore, related art applications and tools do not provide access to telecommunications-related shapes, objects, and symbols. Summary of the Invention [Means for solving the problem]
[0004] The following presents a simplified summary of one or more embodiments of the present disclosure in order to provide a basic understanding of such embodiments. This summary is not an extensive overview of all possible embodiments, and is not intended to identify key or critical elements of all embodiments or to delineate the scope of any or all embodiments. Its sole purpose is to present some concepts of one or more embodiments of the present disclosure in a simplified form as a prelude to the more detailed description that is presented later.
[0005] SUMMARY OF THE DISCLOSURE Provided by the present disclosure are methods, apparatus, and non-transitory computer-readable media for annotation of images in mobile applications.
[0006] Aspects of one or more embodiments enable a user to easily and conveniently create elevations or floor plans and represent different network elements and their positioning in the elevation or floor plan without the use of a third-party application.
[0007] Aspects of one or more embodiments allow a user to utilize pre-drawn, camera-captured, or satellite view images to create an elevation or plan view and add representations of different network elements to it.
[0008] According to an embodiment, a method for providing a site drawing includes displaying on a display of a device a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details, receiving a selection from a user for one of an elevation view and a floor plan view, displaying a canvas and one or more components on the user interface, receiving one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates, and storing the one or more components and their coordinates in JavaScript Object Notation (JSON).
[0009] According to an embodiment, an apparatus for providing a site drawing includes a memory storage device that stores computer-executable instructions and a processor communicatively coupled to the memory storage device, the processor being configured to execute the computer-executable instructions to cause the apparatus to display a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details, receive a selection from a user of one of an elevation view and a floor plan view, display a canvas and one or more components on the user interface, receive one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates, and store the one or more components and their coordinates in JavaScript Object Notation (JSON).
[0010] According to an embodiment, a non-transitory computer-readable medium includes instructions that, when executed by one or more processors, cause the device to provide a user with a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details, receive a selection from the user of one of the elevations and floor plans, display a canvas and one or more components on the user interface, receive one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates, and store the one or more components and their coordinates in JavaScript Object Notation (JSON).
[0011] Additional embodiments will be set forth in the description that follows, and in part will be obvious from the description, and / or may be learned by practice of the presented embodiments of the present disclosure. [Brief description of the drawings]
[0012] The above and other aspects, features, and aspects of embodiments of the present disclosure will become apparent from the following description taken in conjunction with the accompanying drawings.
[0013] [Figure 1] FIG. 1 illustrates an exemplary device useful for creating a site diagram, in accordance with an embodiment of the present invention. [Diagram 2] FIG. 13 is an exemplary flow diagram for creating a site drawing using JSON, in accordance with an embodiment of the present invention. [Diagram 3] FIG. 13 illustrates a user interface for displaying site details. [Figure 4] FIG. 13 is a diagram showing a user interface for requesting selection of an installation pattern. [Diagram 5] FIG. 13 illustrates a user interface requesting selection of an elevation or floor plan. [Figure 6] FIG. 13 illustrates a user interface for applying texture to a surface of an elevation. [Figure 7A] FIG. 2 illustrates an exemplary user-created floor plan in accordance with an embodiment of the present invention. [Figure 7B] FIG. 13 illustrates an exemplary screen through which parameters of a telecommunications device selectable to be added to the canvas are entered. [Figure 8] FIG. 1 illustrates an exemplary device useful for performing image annotation, according to an embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] The following detailed description of the exemplary embodiments refers to the accompanying drawings, in which the same reference numbers in different drawings may identify the same or similar elements.
[0015] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. Moreover, one or more features or components of one embodiment may be incorporated in or combined with another embodiment (or one or more features of another embodiment). Furthermore, in the flowcharts and descriptions of operations provided below, it is understood that one or more operations may be omitted, one or more operations may be added, one or more operations may be performed (at least partially) concurrently, and the order of one or more operations may be permuted.
[0016] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not intended to limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it will be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.
[0017] Although particular combinations of features are recited in the claims and / or disclosed herein, these combinations are not intended to limit the disclosure of possible implementations. Indeed, many of these features may be combined in ways not specifically recited in the claims and / or disclosed herein. Although each dependent claim listed below may depend directly on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.
[0018] No element, act, or instruction used herein should be construed as critical or essential unless expressly described as such. Additionally, the articles "a" and "an" as used herein are intended to include one or more items and may be used interchangeably with "one or more." When only one item is intended, the term "one" or similar language is used. Additionally, terms such as "has," "have," "having," "include," "including," and the like as used herein are intended to be open-ended terms. Additionally, the phrase "based on" is intended to mean "based at least in part on," unless specifically noted otherwise. Additionally, phrases such as "at least one of [A] and [B]" and "at least one of [A] or [B]" should be understood to include only A, only B, or both A and B.
[0019] Throughout this specification, references to "one embodiment," "one embodiment," or similar language means that a particular feature, structure, or characteristic described in connection with the illustrated embodiment is included in at least one embodiment of the inventive solution. Thus, the phrases "in one embodiment," "in one embodiment," and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
[0020] Furthermore, the described features, advantages, and characteristics of the present disclosure can be combined in any suitable manner in one or more embodiments. In light of the description herein, a person skilled in the art will recognize that the present disclosure can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in a particular embodiment that may not be present in all embodiments of the present disclosure.
[0021] In the related art, a user who wants to create layout drawings with elevations (side views) and / or plans (top views) must use external, expensive tools that are not tailored to telecommunication sites. Specialized and difficult-to-obtain hardware is often required to run effectively. On the other hand, the exemplary embodiments of the present disclosure provide a user-friendly solution that can be implemented on a typical mobile device, such as a tablet or smartphone. No specific training is required to effectively operate a device implementing the exemplary embodiments.
[0022] The exemplary embodiments also introduce features not found in related art CAD programs. For example, a user can select textures to be applied to the surfaces of a three-dimensional representation in a mobile application from internet images associated with the geographic area of the representation, images stored on the device, and images captured by an optical device at the command of the user, and store the textures using JavaScript Object Notation (JSON). In accordance with the method and system of the exemplary embodiments, the site plan can be stored and saved in JSON format for later output of bitmaps. The use of JSON significantly improves the user experience during computer-aided design of the site plan with less latency and fewer technical glitches.
[0023] Advantageously, the embodiments described below provide for the use of JSON to accomplish one or more tasks. In addition, the present disclosure can provide a user-friendly and easily operable experience for creating and modifying site plans. Furthermore, site plans can be deployed in a manner that can meet rapidly changing requirements and minimize latency, resulting in an improved user experience. Furthermore, the use of JSON to render site plans can result in execution times that can be faster compared to other related art CAD methodologies.
[0024] 1 illustrates a device in which embodiments may be implemented. Device 100 includes a bus 102 or other communication mechanism for communicating information, and a microprocessor 104 coupled to bus 102 for processing information.
[0025] Computer system 100 also includes a main memory 106, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 102 for storing information and instructions to be executed by processor 104. Main memory 106 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 104. Such instructions, when stored in a non-transitory storage medium accessible to processor 104, make computer system 100 a special-purpose machine customized to perform operations specified in the instructions.
[0026] Computer system 100 further includes a read only memory (ROM) 108 or other static storage device coupled to bus 102 for storing static information and instructions for processor 104. A storage device 110, such as a magnetic disk or optical disk, is provided and coupled to bus 102 for storing information and instructions.
[0027] The computer system 100 may be coupled via a bus 102 to a display 112, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 114, which may include alphanumeric and other keys, is coupled to the bus 102 for communicating information and command selections to the processor 104. Another type of user input device is used for cursor control, such as a mouse, trackball, or cursor direction keys for communicating directional information and command selections. The processor 104 may receive signals from the input device 114 for controlling cursor movement and calculate the associated changes to the display 112. A cursor control input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), allowing the device to specify a position in a plane.
[0028] Computer system 100 may implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic in combination with a computer system to make or program computer system 100 into a special purpose machine. According to at least one embodiment, the techniques herein are performed by computer system 100 in response to processor 104 executing one or more sequences of one or more instructions contained in main memory 106. Such instructions may be read into main memory 106 from another storage medium, such as storage device 110. Execution of the sequences of instructions contained in main memory 106 causes processor 104 to perform the process operations described herein.
[0029] Computer system 100 also includes a communication interface 118 coupled to bus 102. The communication interface 118 provides a two-way data communication coupling to a network link 120 that is connected to a local network 122. For example, the communication interface 118 may be an integrated services digital network (ISDN) card, a cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the communication interface 118 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. A wireless link may also be implemented. In at least one such implementation, the communication interface 118 sends and receives one or more electrical, electromagnetic and optical signals (as well as all uses of "one or more" herein to imply any combination of one or more of these) that carry digital data streams representing various types of information.
[0030] Network link 120 typically provides data communication through one or more networks to other data devices. For example, network link 120 may provide a connection through a local network 122 to a host computer 124 or to data equipment operated by an Internet Service Provider (ISP) 126. ISP 126 then provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 128. Local network 122 and Internet 128 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 120 and through communication interface 118, which carry the digital data to and from computer system 100, are exemplary forms of transmission media.
[0031] Computer system 100 can send messages and receive data, including program code, through the network(s), network link 120 and communication interface 118. In at least one embodiment of the Internet example, a server 130 can transmit a requested code for an application program through Internet 128, ISP 126, local network 122 and communication interface 118.
[0032] In an embodiment, the received code may be one or more of executed by processor 104 as it is received, and / or stored in storage device 110, or other non-volatile storage for later execution.
[0033] FIG. 2 is an exemplary flow diagram for image annotation using JSON, according to an embodiment of the present invention.
[0034] In block 200 of FIG. 2, a user launches a smartphone having a site drawing application. These drawings are provided as exemplary embodiments for illustrative purposes only, so the disclosure is not limited to smartphones and any type of device can be used to implement the embodiments. In some embodiments, the application can run on a laptop, tablet, or desktop computer. Applications such as those found in the exemplary embodiments can be loaded onto devices such as smartphones in several ways. Using the local network 122 and the Internet 128 of FIG. 1, electrical optical signals, electromagnetic optical signals, or optical signals can carry digital data streams that encode applications for use in the embodiments. If the input device 114 is, for example, a CD-ROM or DVD-ROM drive, the input device 114 of FIG. 1 can be used to read non-transitory computer-readable media that includes instructions for applications useful in the exemplary embodiments.
[0035] In block 202 of FIG. 2, site details are created or accessed. The site details include relevant information about a particular structure, such as an identifier assigned by an organization for ease of reference and the street address of the site. An application configured for an embodiment allows a user to input data including the site details (i.e., if the input device 114 is a keyboard, the user can type text into a field). The site details may also be stored in an external database or storage component 110 accessible via the Internet 128. Through various programming techniques, the site details can be retrieved from the external database. Thus, in some embodiments, the user can access pre-stored site details rather than having to enter the site details.
[0036] In block 204 of FIG. 2, the user decides to create an elevation (alternatively, the user may choose to create a plan view). As described with reference to FIG. 4, the user can choose between a plan view and an elevation view. An elevation view is a side view of a site and can be used to convey three-dimensional information. An elevation view is an orthographic projection view that is a two-dimensional representation of a three-dimensional space. A two-dimensional representation of a three-dimensional object may have a surface known as a texture. A texture is simply an image that is used to skin a 3D object. Any image, such as those found in a JPEG file, can serve as a texture. For example, a photo of a brick wall can be used for the two-dimensional look of a brick wall. Textures can be created computationally according to supplied parameters or can be created by an artist in a program such as GIMP or Photoshop.
[0037] The elevation view is shown on a canvas element rendered on a user interface (UI) (e.g., display 114 of the exemplary device 100 of FIG. 1). Rendering a UI view may be divided into one or more pages, and each page may be divided into one or more sections. In such an example, the layout information may indicate which resources correspond to each page and / or section of the UI view. In some embodiments, when the UI view is rendered or when it is rendered (e.g., when it is executed or when it is executed), the UI view may display one page at a time and may provide navigation buttons to move between pages. In other embodiments, when the UI view is rendered or when it is rendered, the UI view may display two or more pages simultaneously. Alternatively or additionally, the sections of the UI view may be arranged horizontally, vertically, and / or overlapping. In other optional or additional embodiments, one or more sections of the UI view may be conditionally displayed. That is, the sections of the UI view may be shown and / or hidden based on a condition being met (e.g., a particular field and / or parameter is set to a particular value). Alternatively or additionally, sections of the UI may be enabled (e.g., input may be allowed) and / or disabled (e.g., input may not be allowed) based on a condition being met, although this disclosure is not limited in this respect.
[0038] When an elevation view appears on a canvas of the UI, the positioning and / or vertical positioning information of elements (i.e., text and graphics) within the UI varies between embodiments. The positioning information can be indicated relative to a predefined point of the UI view (e.g., origin), such as, but not limited to, the top left corner, center point, or bottom right corner, of a section of the UI view and / or a page of the UI view. Alternatively or additionally, the layout information may include layering information (e.g., z-order). In other embodiments, the horizontal and / or vertical positioning may be determined based on an automated script that is dynamically updated. For example, one element may be displayed at the top of the UI and a second element may be displayed at the bottom of the UI. In another example, a first element may be displayed on the right side of the UI view and a second element may be displayed on the left side.
[0039] Blocks 206-210 provide the ability for a user to select images to be used in the elevations created in block 204. For two-dimensional representations in the three-dimensional site elevations, the user can select textures that will be applied to each section of each two-dimensional representation. Images to be used in the two-dimensional displays can be selected using at least three protocols described in blocks 206-210, although these methods are non-exclusive. Images can also be selected in any number of other ways, such as via signals received from the Internet of Things (IOT), Augmented Reality (AR - an interactive experience of a real-world environment where objects present in the real world are integrated into a computerized environment), Artificial Intelligence (AI) or Virtual Reality (VR).
[0040] At block 206 of FIG. 2, in one embodiment, a camera application is opened by the user to take an image for editing for use in the elevation. The camera application may be, for example, a stock camera application pre-installed on the user's phone, or the user may select from a variety of camera applications provided by third-party providers or created by the user or the user's organization. Using an existing camera application or building a camera application may both be options for the user in taking an image for editing, in an embodiment. A developer may provide a camera user interface that is customized to the look and feel of the application or provides special features. Writing code for a custom-built photography application may provide a more engaging experience for the user.
[0041] In block 208 of FIG. 2, the user may select to perform a Google search for an image. Other search engines or web-based cloud services may also be used to search for images. The parameters of the Google search may be received via an input device, such as input device 114 of the example device of FIG. 1. After receiving several results of the Google search, the user may select an image from one of the Google search results to use in an embodiment. The user may also find that all results are not satisfactory and instead proceed to the steps described in block 206 and / or block 210 to obtain an image.
[0042] 2, a user can open a gallery application to select an image stored at a previous time. Similar to the camera application described in block 206, the gallery application can be a stock gallery application, or a third party application, or can be programmed and built specifically for use in an embodiment. The gallery application can contain only images stored in the local memory of the device being used in the embodiment, or the gallery application can also contain images accessible to members of a particular organization via a network storage drive or other means.
[0043] In block 212 of FIG. 2, a site drawing is created or updated, including the elevations and two-dimensional textures selected in blocks 206-210. The user can save the created or updated site drawing, or the application for use in this exemplary embodiment can be programmed to automatically save. Saving is writing data to a storage medium, such as a floppy disk, CD-R, USB flash drive, or hard drive. A save option is commonly found in almost every program under a "File" drop-down menu or via an icon that resembles a floppy diskette. When the save option is clicked, the file is saved under its previous name. However, if the file is new, the program asks the user to name the file and where to save the file. If the file is not saved, it will be lost unless the program the user is using automatically saves it while the user is working. For example, if the computer loses power or the computer has to be rebooted, the work will be lost. While the user is working, data is saved in RAM, a fast, volatile memory device. RAM is called "volatile" because it loses its data when its power is lost or turned off. In contrast, a storage medium or disk is a "non-volatile" storage because it retains its data even when power is turned off. Thus, prior to the user's action in block 212 of FIG. 2, the created or updated site plan is stored in RAM, but is not stored permanently for future retrieval. Also in block 212 of FIG. 2, the updated image, including the elevation and two-dimensional texture, is shown on the user interface as selected and positioned by the user. After this action, the user can return to block 200 and continue to perform the actions described in FIG. 2 with additional site plans, or continue working with the existing elevation plans, e.g., select additional images as in blocks 206-210.The user can also proceed to create a bitmap file that encodes the updated image shown on the user interface (e.g., in file formats including, but not limited to, .jpg, .tiff, .gif, .svg, .svgz, bmp, .png, and .tif) and can print it on paper or send the bitmap over the Internet.
[0044] 3 illustrates a user interface displaying site details, which is shown to a user upon initializing an application useful for implementing this exemplary embodiment.
[0045] Site Details 300 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0046] The back button 301 allows a user to trigger a command to exit the user interface and return to a previously displayed and / or default user interface view. In various embodiments, the back button 301 may return to a user interface view of the application being used for the site drawing, or may return to a user interface view of the operating system of the device on which the embodiment is implemented.
[0047] The reload button 302 allows the user to update other data fields based on the user's input in one data field. For example, the user can enter a SARF ID and then click the reload button to retrieve the site name, reference ID, etc. from the database.
[0048] Site name title 304 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of commands. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0049] SARF ID Title 305 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0050] Site name data 306 is a data field that contains the name of the site. A user may enter, i.e., type, the name into the data field, or the name may be obtained from a database.
[0051] SARF ID data 307 is a data field that contains an alphanumeric identifier for the site. A user may enter, i.e., type, the SARF ID into the data field, or the SARF ID may be obtained from a database.
[0052] Reference ID title 308 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0053] Region title 309 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0054] The reference ID data 310 is a data field that contains an alphanumeric identifier for the site. A user may enter, i.e., type, the reference ID into the data field, or the reference ID may be retrieved from a database.
[0055] The domain data 312 is a data field designed to contain a domain. A domain may be defined, for example, by an organization. A user may be able to enter, i.e., type, a name into the data field, or the name may be retrieved from a database.
[0056] Zip Code Title 314 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0057] Prefecture title 316 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0058] Zip code data 318 is a data field designed to contain a zip code. Zip codes may be defined, for example, by a national postal carrier. A user may be able to input, i.e., type, the zip code into the data field, or the zip code may be obtained from a database or via the Internet, for example, the national postal carrier's website.
[0059] The prefecture data 320 is a data field designed to contain a prefecture name. A prefecture may be, for example, a subdivision of a local government. A user may be able to input, i.e., type, the prefecture into the data field, or the prefecture may be obtained from a database or via the Internet, e.g., a website.
[0060] Installation pattern title 322 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0061] The installation pattern selection 324 provides the user with an indication that the user can click on. When the user clicks on the designated location, an area is presented where the user can select from several installation pattern options, as shown in FIG.
[0062] Address title 326 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0063] Address data 328 is a data field designed to contain an address. The address may be defined, for example, by a national postal carrier. A user may be able to input, i.e., type, the address into the data field, or the address may be obtained from a database.
[0064] A cancel button 330 allows a user to exit the user interface view shown in Fig. 3, for example, without necessarily entering an installation pattern. When a user instantiates the cancel button 330, the user is returned to a user interface view of an introductory screen of an application for use in an embodiment, or to a user interface view of a home screen of a mobile device, for example.
[0065] The Next button 332 allows the user to proceed to the next user interface view in the sequence, i.e., Fig. 5. It can be programmed such that before the Next button 332 can trigger a command to advance the user interface view, an input must be made by the user, i.e., an installation pattern must be selected, as shown in Fig. 4. Depending on the programming of the embodiment, the user may also be required to enter data in some or all of the other fields (e.g., site address) before the Next button is activated.
[0066] FIG. 4 shows a user interface requesting selection of an installation pattern.
[0067] In this exemplary embodiment, each of site details 300, back button 301, reload button 302, site name title 304, SARF ID title 305, site name data 306, SARF ID data 307, reference ID title 308, area title 309, address title 326, address data 328, cancel button 330, and next button 332 are visible in the user interface view of Figure 4. Although visible, they do not have the functionality described in Figure 3 and do not allow the user to interact with them in any way until an installation pattern is selected and a different user interface view is instantiated.
[0068] The selection prompt 400 is designed to solicit a user's input for an installation pattern of the telecommunications equipment. If the user clicks on the selection prompt itself, the user may be returned to the user interface view of FIG. 3 without the selection of an installation pattern being recorded.
[0069] Wall mount 402 represents one option of an installation pattern that may be selected by a user. An application according to an embodiment may trigger other commands and user interface changes to be displayed based on the selected installation pattern. For example, in floor plans and elevation drawings that may be created by the present disclosure, certain elements such as wall mount symbols may be displayed and added if a user selects wall mount 402 for an installation pattern.
[0070] Freestanding pole 404 represents a second option of installation patterns that may be selected by a user. A freestanding pole may indicate, for example, that the telecommunications equipment is mounted on a pole provided by a service provider.
[0071] The FRP foundation 406 represents a third option of installation pattern that may be selected by the user. FRP refers to fiber reinforced plastic, a material useful in the telecommunications industry.
[0072] Other embodiments may provide additional and / or different installation patterns available for selection by the user. Installation patterns may be further divided and described in terms of materials used, shapes and sizes. There are many possible installation and service patterns that can be deployed, and the user may be given a scroll bar to view the extent to which the number of installation pattern options exceeds the space in a given window.
[0073] 5 shows a user interface requesting a selection of an elevation or floor plan. The selection can be made via an input device, such as input device 114 of FIG.
[0074] 5, each of site details 300, back button 301, reload button 302, site name title 304, SARF ID title 305, site name data 306, SARF ID data 307, reference ID title 308, area title 309, address title 326, address data 328, cancel button 330, and next button 332 are visible in the user interface view. Although visible, they do not have the functionality described in FIG. 3 and do not allow the user to interact with them in any way until an elevation or floor plan is selected and a different user interface view is instantiated.
[0075] Selection option title 500 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0076] The cancel button 506 is illustrated as an X in the user interface view of Figure 5 and allows the user to exit the user interface view shown in Figure 5 without necessarily making a selection. When the user instantiates the cancel button 506, the user is returned to the previous user interface view (i.e., Figure 3), to a user interface view of an introductory screen of the application for use in an embodiment, or to a user interface view of a home screen of a mobile device, for example.
[0077] The elevation text and icon 504 triggers the creation of an elevation, i.e., the user interface view of Figure 6. The elevation text and icon 504 is designed to give the user a visual representation of a three-dimensional model of the building to aid in the user's understanding of the user interface that will be triggered by clicking on the elevation text and icon 504. As will be described in more detail below, the user interface view of Figure 6 is customized for the purpose of creating an elevation and enables various functions for that purpose.
[0078] Floor Plan 506 triggers the creation of a floor plan, i.e., the user interface view of Figure 7A. Elevation text and icon 504 is designed to give the user a visual representation of a three-dimensional model of the building to aid in the user's understanding of the user interface that will be triggered by clicking on Elevation text and icon 504. As will be described in more detail below, the user interface view of Figure 6 is customized for the purpose of creating an elevation and allows various functions for that purpose.
[0079] FIG. 6 shows a user interface for applying texture to a surface of an elevation.
[0080] The left status indicator bar 600 displays parameters related to the operational state of the device. The right status indicator bar 601 displays parameters related to the operational state of the device and its communication network services. At other times or in other embodiments, more and / or different indicators may be displayed.
[0081] Command buttons 602 trigger one or more pre-set options to be presented to the user, which, when selected by the user, causes further action to be performed on the user interface.
[0082] A done button 604 allows the user to save the elevation and exit the user interface view. The elevation is saved in JSON and can be output in bitmap format if the user desires.
[0083] Elevation creation title 606 is the text that is displayed as the title of this user interface view. This text cannot be modified by the user, clicked on, or otherwise used to trigger the execution of a command. Other embodiments use different titles, and in embodiments the user may be able to change the title, or the title can change dynamically based on pre-set parameters.
[0084] The camera icon and text 608, in one embodiment, opens a camera application to take an image for editing for use in the elevation drawing. A user can take a photo of an area of a wall of a building, for example, and an exemplary embodiment of the present disclosure allows the user to use the photo as a texture on the surface of a three-dimensional model of the building displayed on the user interface.
[0085] The image icon and text 610 allows the user to open a gallery application to select an image stored at a previous time. Using the drawing tools found in the embodiment, the user can draw a construction element with a particular image in mind that was captured at a previous time, and then use that image, or a portion of it, for the texture of the surface of the construction element.
[0086] Google Earth icon and text 612 allows a user to perform a Google search for the image. In an exemplary embodiment, a user can look at a portion of a building and visually select a corresponding image in Google Earth or a similar application. The URL of the Google Earth image or its file path can be stored in JSON and utilized as a texture on a three-dimensional model of the building displayed in the Google Earth image.
[0087] The cancel button 614 allows the user to exit the user interface view shown in Figure 6 without creating an image. When the user instantiates the cancel button 614, the user is returned to the user interface view to the introductory screen of the application or to the mobile device home screen for use in an embodiment.
[0088] The OK button 616 returns the user to a user interface view like that of Figure 6, but without elements 606-616. If the user wants to draw an elevation rather than add an image, the OK button 616 provides the user with a quick way to do so.
[0089] A canvas element 618 consists of a drawable area defined in code with height and width attributes. JavaScript code can access the canvas and perform drawing functions (other 2D and 3D APIs may also be utilized). Images are added to the canvas element 618 as textures in the elevation view shown in Figure 6.
[0090] The compass 622 allows the user to orient the elevation according to the direction measured by the compass 622 .
[0091] The circle drawing element 624 allows the user to conveniently draw circles of various sizes. The user can drag the circle drawing element 624 and change the radius of the circle to suit the user's desire.
[0092] The draw square element 626 allows the user to draw squares of various sizes. The draw square element 626 provides a way for the user to select the size of the square to suit the user's desires.
[0093] The octagon drawing element 628 allows the user to draw octagons of various sizes. Using the octagon drawing element 628, the user can change the size and position of the octagon that will be added to the canvas to suit the user's desires.
[0094] The triangle drawing element 630 allows the user to draw triangles of various sizes. The polygon drawing element 628 allows the user to change the size and position of the triangle that will be added to the canvas to suit the user's desires.
[0095] A delete image button 632 initiates the removal of the texture from the canvas per the user's instructions.
[0096] The add image button 634 initiates the addition of a texture to the canvas per the user's command.
[0097] The expand device menu button 636 allows the user to expand a menu of device parameters that the user can select, such as display brightness.
[0098] FIG. 7A illustrates an exemplary user-created floor plan, according to an embodiment of the present invention.
[0099] JavaScript can be used to draw the graphical elements added by the user in Figures 6 and 7A. For example, a 20 pixel by 40 pixel rectangle can be drawn in black.
[0100] var example=document.getElementById('example');
[0101] var context=example.getContext('2d');
[0102] context.fillStyle='black';
[0103] context.fillRect(20,20,40,40);
[0104] More complex shapes can be similarly constructed by combining simpler shapes. The above shape metadata is used to draw the shape along the defined path, i.e. contour. This can be done using the JSON "path" property, where the path is an array of path segments. A path segment is a cross-section of the overall shape. For example, it can be a straight line and a curved segment. To define the type of segment, an "order" can be defined, specified as a number. An order of 1 corresponds to a linear segment, higher orders can be used to introduce for example cubic and quadratic curves. Once the user specifies the type of path segment he wants, an array of points that will be used to draw the segment must be defined. User-added simple shapes as well as file paths for images can be stored in JavaScript Object Notation (JSON). Images can be directly encoded in JSON, but the encoding requires a large amount of data.
[0105] As a user interacts with the UI shown in Figures 6 and 7A, a collection of shapes, text, and images are stored in JSON and represented on a screen or printer by coloring pixels according to the layer in the image. In an embodiment, layers are different levels at which objects or image files can be placed. A layer can represent a portion of an image, either as pixels or as modification instructions. Layers can be stacked on top of each other and, depending on the order, can determine the appearance of the final image. Layers can be stacked, merged, or defined when creating a digital image. Layers can be partially obscured, hiding or revealing parts of an image in a layer semi-transparently within another image. Layers can also be used to combine two or more images into a single digital image.
[0106] The JSON object format is often used in embodiments to store site drawings. The JSON object format can be conveniently used to store site drawings in a database or to transmit data on a server. Many programming languages provide implementations for JSON. Common languages such as PHP, Python, C#, C++, and Java provide good support for the JSON data exchange format. Common programming languages commonly used in the art rely on JSON and its implementations for data transfer, and therefore provide good support for JSON. Thus, the present disclosure enables site drawings to be easily processed and utilized within and across organizational (i.e., enterprise) networks in a variety of different web applications.
[0107] Drawing 701 is a plan view constructed using the functionality described above. A shape can completely cover text, for example, as represented on a UI depicting drawing 701, as a shape can be positioned in front of the text to obscure the text from view of the UI. Although the JSON format can store all layers in an image, the per-pixel values do not take into account non-visible layers. This is another advantage of implementing the present invention, as the techniques provided by this disclosure allow a user to persistently store and save information represented in non-visible layers.
[0108] The line tool 700 allows the user to draw along a straight line path: the pixels to be colored are limited to those that have a linear relationship originating from an origin selected by the user.
[0109] The freehand tool 702 allows the user to color any pixel on the canvas. The freehand tool 702 offers the most flexibility but is more difficult to operate, especially for inexperienced users.
[0110] An information tool 704 allows a user to add information, such as operation and service instructions, to the floor plan. The information can be stored locally on the user's device or retrieved from an external database.
[0111] The openings menu 706 provides the user with a variety of possible openings to depict that are useful for telecommunications lines to pass through. A variety of shapes and sizes can be made available to best depict conditions within a particular building.
[0112] The label menu 708 provides the user with pre-populated text fields for quick and convenient positioning of labels on the display rather than the user having to type them in individually, for example, a user can find the label for the name of a particular telecommunications device.
[0113] The component menu 710 provides the user with various possible telecommunications equipment for depicting in the drawing 701. When the user clicks on the component menu 710, different telecommunications equipment options become selectable to be depicted. For example, a drop-down menu may be displayed with a list of selected equipment. Examples of telecommunications equipment that may be listed include antennas, switches, communication towers, fiber optic cables, antennas, and routers. Quantitative and qualitative displays may be made. Selection of the component menu 710 may also provide a screen (e.g., a pop-up window as shown in FIG. 7B) through which parameters and properties of the selected communication equipment may be displayed and / or entered. Based on the user input parameters, the size and orientation of the telecommunications equipment may be changed. For example, by changing the height or orientation of the antenna in FIG. 7B, the change is reflected in the depicted antenna. The user may create a scale model in which the length and size of a component, such as a cable, is specified by the user and is shown on the user interface of FIG. 7A.
[0114] Some aspects of the user interface of FIG. 6 are also shown in FIG. 7A. A left status indicator bar 600 displays parameters related to the operational state of the device. A right status indicator bar 601 displays parameters related to the operational state of the device and its communication network services. At other times or in other embodiments, more and / or different indicators may be displayed. A command button 602 triggers one or more pre-set options to be presented to the user. A done button 604 allows the user to save the elevation and exit the user interface view.
[0115] FIG. 8 illustrates arithmetic and logic units within a device, such as device 100 shown in FIG. 1, including processor 104, configured for an exemplary embodiment.
[0116] The 3D model polygon rendering component 800 uses polygon modeling to depict 3D objects on the user interface using smaller component polygons. Each polygon is a flat shape defined by the locations of its vertices (or points) and its connecting edges. The surfaces of polygons can be covered with textures, and complex models of any shape can be built entirely from polygons. If the user requires smoother looking surfaces and more detail, etc., the user can increase the number of polygons used to represent the 3D object. This increases the computational power required by the 3D model polygon rendering component 800.
[0117] User or other input component 802 receives input from a user for selecting a texture to be applied to polygons of the 3D model. User or other input component 802 may include one or more components that enable a device (e.g., device 100) to receive information via user input, etc. (e.g., a touch screen, a keyboard, a keypad, a mouse, a stylus, a button, a switch, a microphone, a camera, etc.) and thus may receive input, for example, with a keyboard or cursor control device. User or other input component 802 may include a camera for capturing images, or a non-transitory computer-readable storage medium containing stored images.
[0118] The image to be used as the texture can be obtained from an internet source via a transmitting component 804 and a receiving component 806. The transmitting component 804 is configured to transmit a communication (e.g., wired, wireless) to another device. The transmitting component 804 can perform signal processing on the generated communication and can transmit the processed signal. In some embodiments, the transmitting component 804 can include one or more antennas, a transmitting processor, a controller / processor, a memory, or a combination thereof. In some embodiments, the transmitting component 804 may be co-located with the receiving component 806, such as in a transceiver and / or a transceiver component. The receiving component 806 is configured to receive a communication (e.g., wired, wireless) from another device. The receiving component 806 can receive a communication, such as control information, a data communication, or a combination thereof, from another device. The receiving component 806 can provide the received communication to one or more other components, such as a storage component 808 and / or a texture rendering component 810. In some aspects, the receiving component 806 can perform signal processing on the received communication and can provide the processed signal to one or more other components. In some embodiments, the receiving component 806 may include one or more antennas, a receiving processor, a controller / processor, a memory, or a combination thereof.
[0119] The storage component 808 may be configured to or may comprise a means for storing textures to be used by the texture rendering component 810. For example, the textures may be stored in a database according to pre-set parameters. The storage component 808 may store the textures in the working memory, a storage location local to the device, or storage may occur in some external database, external server, or web application.
[0120] The texture rendering component 810 may be configured or comprise a means for rendering a model of a building with textures applied to surfaces in the model. The number of dimensions shown in the model is variable. In a two-dimensional context, the texture rendering component 810 may render an elevation depicting a surface such as a wall with textures applied to the walls from images stored in the storage component 808. If a three-dimensional model is desired, the texture rendering component 810 may apply textures to the surfaces of polygons generated by the 3D model polygon rendering component 800.
[0121] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementation to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
[0122] It is understood that the particular order or hierarchy of blocks in the processes / flowcharts disclosed herein represents example approaches. It is understood that the particular order or hierarchy of blocks within the processes / flowcharts may be rearranged based on design preferences. Further, some blocks may be combined or omitted. The accompanying method claims present elements of the various blocks in a sample order, and are not meant to be limited to the particular order or hierarchy presented.
[0123] Some embodiments may relate to systems, methods, and / or computer-readable media at any possible level of technical detail of integration. Furthermore, one or more of the above components described above may be implemented as instructions stored on a computer-readable medium and executable by at least one processor (and / or may include at least one processor). The computer-readable medium may include a computer-readable non-transitory storage medium(s) having computer-readable program instructions for causing a processor to perform operations.
[0124] A computer-readable storage medium can be a tangible device that can hold and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes portable computer diskettes, hard disks, random access memories (RAMs), read-only memories (ROMs), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or ridge structures in grooves on which instructions are recorded, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as being, per se, a transitory signal, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or an electrical signal transmitted through a wire.
[0125] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium in the respective computing / processing device.
[0126] The computer readable program code / instructions for performing the operations may be either source code or object code written in any combination of one or more programming languages, including assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for integrated circuits, or object oriented programming languages such as Smalltalk and C++, and procedural programming languages such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA) can execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform an aspect or operation.
[0127] These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to generate a machine such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for performing the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams. These computer-readable program instructions may also be stored on a computer-readable storage medium capable of directing a computer, programmable data processing apparatus, and / or other device to function in a particular manner, such that the computer-readable storage medium on which the instructions are stored includes a product including instructions implementing aspects of the functions / operations specified in one or more blocks of the flowcharts and / or block diagrams.
[0128] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause the computer, other programmable apparatus, or other device to execute a series of operational steps to generate a computer-implemented process, such that the instructions executing on the computer, other programmable apparatus, or other device perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.
[0129] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer-readable media according to various embodiments. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or part of instructions that includes one or more executable instructions for implementing the specified logical functions. The methods, computer systems, and computer-readable media may include additional, fewer, different, or differently arranged blocks than those shown in the figures. In some alternative implementations, the functions described in the blocks may be performed in a different order than that described in the figures. For example, two blocks shown in succession may actually be executed simultaneously or substantially simultaneously, or the blocks may sometimes be executed in the reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, as well as combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations or executes a combination of dedicated hardware and computer instructions.
[0130] It will be apparent that the systems and / or methods described herein may be implemented in various forms of hardware, firmware, or a combination of hardware and software. The actual dedicated control hardware or software code used to implement these systems and / or methods is not intended to limit the implementation. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code, and it will be understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.
Claims
1. 1. A method for providing a site drawing, the method comprising: displaying, on a display of the device, a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details; receiving a selection from a user for one of the elevation and floor plan views; Displaying a canvas on the user interface; receiving one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates; storing the one or more components and their coordinates in JavaScript Object Notation (JSON); A method comprising:
2. The one or more inputs corresponding to the addition of one or more components at one or more coordinates include: Establishing a network communication linkage with a server; sending an indicator of a geographic location; receiving an image corresponding to the geographic location; The method of claim 1 , wherein the signal is received by
3. Receiving the one or more inputs includes: Receiving a first input for selecting a component type from among a plurality of predefined telecommunications equipment components; displaying a window through which parameters of a component corresponding to the selected component type are provided based on the received first input; receiving a second input for adjusting at least one parameter displayed in the window; and drawing the component on the canvas based on the adjusted at least one parameter; The method of claim 1 , comprising:
4. The method of claim 1 , wherein the one or more inputs corresponding to the addition of one or more components at one or more coordinates create a three-dimensional representation.
5. receiving a selection of a surface in the three-dimensional representation from the user; applying a texture to the selected surface according to input received from the user; displaying the texture on the selected surface of the three-dimensional representation on the user interface; and The method of claim 4 further comprising:
6. The method of claim 1 , further comprising transmitting the one or more components and their coordinates in JavaScript Object Notation (JSON) over a communication network to a server.
7. The method of claim 1 , further comprising transmitting a bitmap of the one or more components to a server over a communications network.
8. receiving, at a second device, the one or more components and their coordinates in JavaScript Object Notation (JSON); Parsing the received JSON; calculating a rendering scaling factor based on parameters of the second device; displaying the one or more components on a user interface of the second device according to the rendering scaling factor; The method of claim 1 further comprising:
9. a memory storage device storing computer executable instructions; a processor communicatively coupled to the memory storage device; and a processor for executing the computer-executable instructions, the processor causing the apparatus to: displaying a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details; receiving a selection from a user for one of the elevation and floor plan views; Displaying a canvas on the user interface; receiving one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates; storing the one or more components and their coordinates in JavaScript Object Notation (JSON); The apparatus is configured to cause
12. The system of claim 11 , further comprising a network connection interface configured to transmit data to a server over a computer communications network.
13. receiving the one or more components and their coordinates in JavaScript Object Notation (JSON); Parsing the received JSON; calculating a rendering scaling factor based on parameters of the second device; displaying the one or more components on a user interface of the second device according to the rendering scaling factor; The system of claim 11 , further comprising a second device configured to:
14. The system of claim 11 , further comprising an optical device for capturing an image.
15. A non-transitory computer-readable medium containing instructions that, when executed by one or more processors, cause an apparatus to: providing a user with a user interface configured for one or more of creating site details for a site, accessing the site details, and editing the site details; receiving a selection from a user for one of the elevation and floor plan views; Displaying a canvas on the user interface; receiving one or more inputs from the user corresponding to adding one or more components to the canvas at one or more coordinates; storing the one or more components and their coordinates in JavaScript Object Notation (JSON); A non-transitory computer-readable medium for causing
16. The instructions further cause the device to: receiving a selection of a surface in the three-dimensional representation from the user; applying a texture to the selected surface according to input received from the user; displaying the texture on the selected surface of the three-dimensional representation on the user interface; and 20. The non-transitory computer-readable medium of claim 15,
17. The instructions further cause the device to: Establishing a network communications connection with a server; sending an indicator of a geographic location; receiving an image corresponding to the geographic location; 20. The non-transitory computer-readable medium of claim 15,
18. 20. The non-transitory computer-readable medium of claim 15, wherein the instructions cause the device to create a three-dimensional representation of the one or more components at one or more coordinates.
19. 16. The non-transitory computer-readable medium of claim 15, wherein the instructions cause the device to transmit the one or more components and their coordinates stored in JavaScript Object Notation (JSON) to a server over a computer communications network.
20. 20. The non-transitory computer-readable medium of claim 15, wherein the instructions cause the device to transmit an output image bitmap of the one or more components to a server over a computer communications network.
Citation Information
Patent Citations
Method for simulating furniture layout
JP2006163721A
Methods, apparatus and systems for facilitating generation and assessment of engineering plans
US20120065944A1
Computer-implemented apparatus, system, and method for three dimensional modeling software
US20130141428A1
Floor plan based planning of building systems
US20180121571A1
Three-dimensional modeling from optical capture
US20190026938A1