IP Library Granted Patent US 12,197,821
Granted Patent B2
US 12,197,821 · App. 17/117,527 · Granted Jan 14, 2025

Coordinating conversion between floorplan user interface layers

Inventor: Collin Parker (Chatsworth, CA)
Assignee: Nuvolo Technologies Corporation
G06F30/13G06F16/29G06T3/40
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,197,821
App. No.
17/117,527
Granted
Jan 14, 2025
Kind
B2
Abstract

Systems and techniques for rendering multi-layer computer-aided design related documents are described. A described technique includes maintaining, for concurrent presentation on a device, a first map layer with a first geographic coordinate system and a second map layer with a second different coordinate system; determining a projection from the first geographic coordinate system to the second different coordinate; generating, using the projection from the first geographic coordinate system to the second different coordinate system, instructions for presentation of a user interface that depicts the first map layer concurrently with the second map layer; and providing, to the device, the instructions to cause the device to present the user interface.

Claims (75)

1. A method implemented by a computer, comprising:

maintaining, by a processor in a memory and for concurrent presentation on a device, a first map layer of a CAD document with a first geographic coordinate system and a second map layer of the CAD document with a second different coordinate system;

creating, by the processor, a coordinate reference system that has an origin at an initial origin location and flat surface projection that converts geographical coordinates from the first geographic coordinate system of the first map layer of the CAD document onto a flat surface;

inverting, by the processor, a vertical axis in the coordinate reference system;

aligning based on the inverting, by the processor, one or more increasing values relative to a direction;

determining, by the processor, a new origin location for the origin, wherein determining the new origin location comprises:

i) unprojecting, using the flat surface projection that converts geographical coordinates from the first geographic coordinate system with which the first map layer of the CAD document is maintained, the first geographic coordinate system onto the coordinate reference system, and

ii) using, as the new origin location, a location on the coordinate reference system onto which a feature for the first geographic coordinate system, with which the first map layer of the CAD document is maintained, is unprojected;

updating, by the processor, the coordinate reference system to have the origin at the new origin location;

projecting, by the processor, the second different coordinate system, with which the second map layer of the CAD document is maintained, onto the coordinate reference system using the new origin location;

determining, by the processor, a projection from the first geographic coordinate system to the second different coordinate system to produce a determined projection, wherein determining the projection comprises using the unprojection of the first geographic coordinate system, with which the first map layer of the CAD document is maintained, onto the coordinate reference system and the projection of the second different coordinate system, with which the second map layer of the CAD document is maintained, onto the coordinate reference system;

generating, by the processor using the determined projection, instructions for presentation of a user interface that depicts the first map layer of the CAD document concurrently with the second map layer of the CAD document; and

providing, by the processor to the device, the instructions to cause the device to present the user interface.

2. The method of claim 1 , comprising:

receiving, from the device, input data that (i) indicates user interaction with the user interface and (ii) identifies a first point in the first geographic coordinate system;

converting, using the input data and the determined projection, the first point to a second point in the second different coordinate system; and

determining an action to perform for the second map layer using the second point in the second different coordinate system.

3. The method of claim 2 , wherein determining the action to perform for the second map layer comprises determining that the input data indicates a request for a zoom operation at the first point, the method further comprising:

determining an updated zoom level using the zoom operation and a zoom level for the second map layer presented in the user interface;

retrieving, from the memory, content for the second map layer using the second point and the updated zoom level; and

providing, to the device, the content for the second map layer to cause the device to present the content in the user interface.

4. The method of claim 3 , wherein retrieving the content comprises retrieving an image tile for the second map layer that depicts data for the second point at the updated zoom level, and wherein providing the content comprises providing, to the device, the image tile for the second map layer to cause the device to present the image tile in the user interface.

5. The method of claim 4 , wherein retrieving the image tile comprises retrieving an image tile that has a first coordinate that represents the updated zoom level and one or more second coordinates that encompass the second point.

6. The method of claim 1 , wherein using, as the new origin location, the location on the coordinate reference system onto which the feature for the first geographic coordinate system is unprojected comprises using, as the new origin location, the location on the coordinate reference system onto which a top, left corner of the first map layer for the first geographic coordinate system is unprojected.

7. The method of claim 1 , wherein:

creating the coordinate reference system that has the origin at the initial origin location comprises creating the coordinate reference system that has the origin at the initial origin location with a first coordinate for a first axis and a second coordinate for a second axis; and

updating the coordinate reference system to have the origin at the new origin location comprises updating the coordinate reference system to have the origin at the new origin location with a third coordinate for the first axis and a fourth coordinate for the second axis, the third coordinate being a different coordinate than the first coordinate and the fourth coordinate being a different coordinate than the second coordinate.

8. The method of claim 1 , wherein the first map layer comprises an interactive layer, and wherein the first geographic coordinate system comprises latitude and longitude coordinates.

9. The method of claim 1 , wherein the second map layer comprises an image layer that depicts content of a floorplan, wherein the image layer comprises one or more image tiles, and wherein the second different coordinate system comprises a Cartesian coordinate system.

10. The method of claim 1 , wherein determining the projection from the first geographic coordinate system to the second different coordinate system comprises determining a first projection for a first floorplan from the first geographic coordinate system to the second different coordinate system, the method further comprising:

determining a second projection for a second floorplan from a third geographic coordinate system for a third may layer to a fourth different coordinate system for a fourth map layer, the second floorplan being a different floorplan than the first floorplan.

11. A system comprising:

a processor; and

a computer-readable storage medium coupled with the processor, wherein the computer-readable storage medium comprising a program for execution by the processor, the program including instructions which, when executed by the processor, cause the processor to perform operations comprising:

maintaining a first map layer of a CAD document with a first geographic coordinate system and a second map layer of the CAD document with a second different coordinate system;

creating a coordinate reference system that has an origin at an initial origin location and a flat surface projection that converts geographical coordinates from the first geographic coordinate system of the first map layer of the CAD document onto a flat surface;

inverting a vertical axis in the coordinate reference system;

aligning, based on the inverting, one or more increasing values relative to a direction;

determining a new origin location for the origin, wherein determining the new origin location comprises unprojecting, using the flat surface projection that converts geographical coordinates from the first geographic coordinate system with which the first map layer of the CAD document is maintained, the first geographic coordinate system onto the coordinate reference system, and using, as the new origin location, a location on the coordinate reference system onto which a feature for the first geographic coordinate system is, with which the first map layer of the CAD document is maintained, unprojected;

updating the coordinate reference system to have the origin at the new origin location;

projecting the second different coordinate system, with which the second map layer of the CAD document is maintained, onto the coordinate reference system using the new origin location;

determining a projection from the first geographic coordinate system to the second different coordinate system to produce a determined projection, wherein determining the projection comprises using the unprojection of the first geographic coordinate system, with which the first map layer of the CAD document is maintained, onto the coordinate reference system and the projection of the second different coordinate system, with which the second map layer of the CAD document is maintained, onto the coordinate reference system;

generating, using the determined projection, instructions for presentation of a user interface that depicts the first map layer of the CAD document concurrently with the second map layer of the CAD document; and

providing, to a device, the instructions to cause the device to present the user interface.

12. The system of claim 11 , wherein the operations further comprise:

receiving, from the device, input data that (i) indicates user interaction with the user interface and (ii) identifies a first point in the first geographic coordinate system;

converting, using the input data and the projection that is determined, the first point to a second point in the second different coordinate system; and

determining an action to perform for the second map layer using the second point in the second different coordinate system.

13. The system of claim 12 , wherein determining the action to perform for the second map layer comprises determining that the input data indicates a request for a zoom operation at the first point, wherein the operations comprise:

determining an updated zoom level using the zoom operation and a zoom level for the second map layer presented in the user interface;

retrieving, from memory, content for the second map layer using the second point and the updated zoom level; and

providing, to the device, the content for the second map layer to cause the device to present the content in the user interface.

14. The system of claim 13 , wherein retrieving the content comprises retrieving an image tile for the second map layer that depicts data for the second point at the updated zoom level, and wherein providing the content comprises providing, to the device, the image tile for the second map layer to cause the device to present the image tile in the user interface.

15. The system of claim 14 , wherein retrieving the image tile comprises retrieving an image tile that has a first coordinate that represents the updated zoom level and one or more second coordinates that encompass the second point.

16. The system of claim 11 , wherein using, as the new origin location, the location on the coordinate reference system onto which the feature for the first geographic coordinate system is unprojected comprises using, as the new origin location, the location on the coordinate reference system onto which a top, left corner of the first map layer for the first geographic coordinate system is unprojected.

17. The system of claim 11 , wherein:

creating the coordinate reference system that has the origin at the initial origin location comprises creating the coordinate reference system that has the origin at the initial origin location with a first coordinate for a first axis and a second coordinate for a second axis; and

updating the coordinate reference system to have the origin at the new origin location comprises updating the coordinate reference system to have the origin at the new origin location with a third coordinate for the first axis and a fourth coordinate for the second axis, the third coordinate being a different coordinate than the first coordinate and the fourth coordinate being a different coordinate than the second coordinate.

18. The system of claim 11 , wherein the first map layer comprises an interactive layer, and wherein the first geographic coordinate system comprises latitude and longitude coordinates.

19. The system of claim 11 , wherein the second map layer comprises an image layer that depicts content of a floorplan, wherein the image layer comprises one or more image tiles, and wherein the second different coordinate system comprises a Cartesian coordinate system.

20. The system of claim 11 , wherein determining the projection from the first geographic coordinate system to the second different coordinate system comprises determining a first projection for a first floorplan from the first geographic coordinate system to the second different coordinate system, and wherein the operations comprise:

determining a second projection for a second floorplan from a third geographic coordinate system for a third may layer to a fourth different coordinate system for a fourth map layer, the second floorplan being a different floorplan than the first floorplan.

21. A non-transitory computer-readable storage medium comprising a program for execution by a processor of a device, the program including instructions which, when executed by the processor, cause the device to perform operations comprising:

maintaining a first map layer of a CAD document with a first geographic coordinate system and a second map layer of the CAD document with a second different coordinate system;

creating a coordinate reference system that has an origin at an initial origin location and flat surface projection that converts geographical coordinates from the first geographic coordinate system of the first map layer of the CAD document onto a flat surface;

inverting a vertical axis in the coordinate reference system;

aligning, based on the inverting, one or more increasing values relative to a direction;

determining a new origin location for the origin, wherein determining the new origin location comprises:

i) unprojecting, using the flat surface projection that converts geographical coordinates from the first geographic coordinate system with which the first map layer of the CAD document is maintained, the first geographic coordinate system onto the coordinate reference system, and

ii) using, as the new origin location, a location on the coordinate reference system onto which a feature for the first geographic coordinate system, with which the first map layer of the CAD document is maintained is unprojected;

updating the coordinate reference system to have the origin at the new origin location;

projecting the second different coordinate system onto, with which the second map layer of the CAD document is maintained, the coordinate reference system using the new origin location;

determining a projection from the first geographic coordinate system to the second different coordinate system to produce a determined projection, wherein determining the projection comprises using the unprojection of the first geographic coordinate system, with which the first map layer of the CAD document is maintained, onto the coordinate reference system and the projection of the second different coordinate system, with which the second map layer of the CAD document is maintained, onto the coordinate reference system;

generating, using the determined projection, instructions for presentation of a user interface that depicts the first map layer of the CAD document concurrently with the second map layer of the CAD document; and

providing, to a device, the instructions to cause the device to present the user interface.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2023
From: PACIFIC WESTERN BANK
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 065445/0445 →
SECURITY INTEREST Recorded Oct 11, 2022
From: NUVOLO TECHNOLOGIES CORPORATION
To: PACIFIC WESTERN BANK
Reel/Frame 061381/0408 →
SECURITY INTEREST Recorded Mar 21, 2022
From: NUVOLO TECHNOLOGIES CORPORATION
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 059326/0748 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2022
From: PARKER, COLLIN
To: NUVOLO TECHNOLOGIES CORPORATION
Reel/Frame 058712/0226 →
Continuity (1)
Related Publication 20220188472A1 · Jun 16, 2022
References Cited (42)
US 6341291B1 · Bentley et al. · 2002 [cited by applicant]
US 8155943B2 · Nasle · 2012 [cited by applicant]
US 8818769B2 · Trainer et al. · 2014 [cited by applicant]
US 9454623B1 · Kaptsan · 2016 [cited by applicant]
US 10121286B2 · Alsaffar et al. · 2018 [cited by applicant]
US 10445438B1 · Motonaga et al. · 2019 [cited by applicant]
US 20070186160A1 · McArdle et al. · 2007 [cited by applicant]
US 20080172605A1 · Smith · 2008 [cited by applicant]
US 20100169272A1 · Labatte et al. · 2010 [cited by applicant]
US 20150106325A1 · Cole et al. · 2015 [cited by applicant]
US 20160246899A1 · Hirschtick et al. · 2016 [cited by applicant]
US 20160328421A1 · Sarratori et al. · 2016 [cited by applicant]
US 20170147717A1 · Chen et al. · 2017 [cited by applicant]
US 20180113878A1 · Duggal et al. · 2018 [cited by applicant]
US 20190213287A1 · Ye et al. · 2019 [cited by applicant]
US 20200285514A1 · Ghare et al. · 2020 [cited by applicant]
US 20200351337A1 · Calmon et al. · 2020 [cited by applicant]
US 20210073449A1 · Segev et al. · 2021 [cited by applicant]
US 20210383037A1 · Segev et al. · 2021 [cited by applicant]
US 20220092225A1 · Parker et al. · 2022 [cited by applicant]
US 20220092834A1 · Ye et al. · 2022 [cited by applicant]
US 20220171892A1 · Ho et al. · 2022 [cited by applicant]
US 20220171893A1 · Ye et al. · 2022 [cited by applicant]
US 20220206445A1 · Reichl et al. · 2022 [cited by applicant]
US 20220206856A1 · Parker · 2022 [cited by applicant]
US 20220214999A1 · Yadav et al. · 2022 [cited by applicant]
US 20220215604A1 · Ho et al. · 2022 [cited by applicant]
Fang, Yiping, Vivek Shandas, and Eugenio Arriaga Cordero. “Spatial thinking in planning practice: An introduction to GIS.” (2014). (Year: 2014). [cited by examiner]
Zhou, Xiaodong, et al. “A PDF Tile Model for Geographic Map Data.” ISPRS international journal of geo-information 8.9 (2019): 373. (Year: 2019). [cited by examiner]
Xu, Zhao, et al. “Combining IFC and 3D tiles to create 3D visualization for building information modeling.” Automation in Construction 109 (2019): 102995. (Year: 2019). [cited by examiner]
Trujillo, Agustín, et al. “Glob3 mobile: An open source framework for designing virtual globes on ios and android mobile devices.” Progress and New Trends in 3D Geoinformation Sciences (2013): 211-229. (Year: 2013). [cited by examiner]
Ekanayake et al. (2008) “MapReduce for Data Intensive Scientific Analysis”, Fourth IEEE International Conference on eScience, 277-284 Pages. [cited by applicant]
Github.com, [online] “Deepzoom (php library)”, Daniel-KM Library Deepzoom, retrieved on Aug. 17, 2020, retrieved from URL: https://github.com/Daniel-KW/LibraryDeepzoom, 4 pages. [cited by applicant]
Github.com, [online] “TiledSharp”, Marshallward/TiledSharp, retrieved on Aug. 17, 2020, retrieved from URL: https://github.com/marshallward/TiledSharp, 4 pages. [cited by applicant]
Stackexchange.com, [online] “If Geographic Coordinates are unprojected coordinates, how can GIS soft wares display such unprojected data in a plane?”, Geographic Information Systems, retrieved on Jun. 2, 2020, retrieved… [cited by applicant]
Wikipedia, “Map projection”, retrieved from URL: https://en.wikipedia.org/w/index.php?title=Map_projection&oldid=955953903, 2020, 16 pages. [cited by applicant]
Wikipedia, “Spatial reference system”, retrieved from URL: https://en.wikipedia.org/w/index.php?title=Spatial_reference_system&oldid=956142752, 2020, 4 pages. [cited by applicant]
Wikipedia, “Tiled web map”, retrieved from URL: https://en.wikipedia.org/w/index.php?title=Tiled_web_map&oldid=956139437, 2020, 3 pages. [cited by applicant]
Chen et al. (2019) “Floor-SP: Inverse CAD for Floorplans by Sequential Room-Wise Shortest Path”, IEEE International Conference on Computer Vision (ICCV), 10 pages. [cited by applicant]
Muller et al. (2006) “Procedural Modeling of Buildings”, Association for Computing Machinery, Inc., 25(3):614-623. [cited by applicant]
Zhu et al. (Dec. 19, 2013) “A New Reconstruction Method for 3D Buildings From 2D Vector Floor Plan”, HAL Open Science, pp. 1-14(15 pages). [cited by applicant]
Condie, et al. (2010) “Online Aggregation and Continuous Query Support in Mapreduce SIGMOD'10”, pp. 1115-1118. [cited by applicant]