01:12.31 | hardwire | who? |
01:30.14 | TheMasterMind1 | yo |
01:30.16 | TheMasterMind1 | sup |
01:30.26 | TheMasterMind1 | i'm trying to get this to display the streets on the canvas :) |
01:30.53 | TheMasterMind1 | in the cdb |
01:31.00 | TheMasterMind1 | we have gridlist right |
01:31.28 | TheMasterMind1 | thats a list of numbers that point to the indexes of the streets in that grid? |
01:31.29 | TheMasterMind1 | correct? |
01:31.52 | TheMasterMind1 | and then aXlist is a list of streets that are that type of road |
04:41.47 | hardwire | what were you saying about oo hell? |
06:36.19 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
10:48.53 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
10:49.41 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
12:21.10 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
13:44.09 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
16:27.55 | TheMasterMind1 | hello |
16:58.21 | TheMasterMind1 | yo, hardwire |
17:18.02 | *** join/#gct TheMasterMind1 (foobar@h-69-3-0-37.MCLNVA23.covad.net) |
18:05.42 | hardwire | hi |
18:08.44 | TheMasterMind1 | hey |
18:08.45 | TheMasterMind1 | whats up |
18:09.28 | hardwire | waking up |
21:09.09 | hardwire | need to figure out pixels per degree today |
22:18.24 | hardwire | shit.. I need to add a single variable "linecount" to the CDB |
22:18.24 | hardwire | heh |
22:18.39 | TheMasterMind1 | why |
22:18.39 | hardwire | that basically indexes all the road lines right there |
22:18.46 | hardwire | I can just count up from there |
22:18.53 | TheMasterMind1 | hmm |
22:18.59 | hardwire | if I want to draw absolutely eveerything |
22:19.55 | hardwire | cause I have a worldmap shapefile now |
22:19.58 | hardwire | drawing that ATM |
22:20.01 | hardwire | well.. begenning too |
22:20.04 | hardwire | beginning |
22:21.11 | TheMasterMind1 | cool |
22:22.00 | hardwire | Debug: world |
22:22.01 | hardwire | Debug: Gridsquares: 79818 |
22:22.02 | hardwire | heh |
22:22.04 | TheMasterMind1 | why do you need linecount |
22:22.11 | TheMasterMind1 | just go through all the gridsqures |
22:22.23 | hardwire | heheh |
22:22.26 | hardwire | cause the same shap |
22:22.30 | hardwire | is in about 500 gridsquares |
22:22.33 | hardwire | like.. africa |
22:22.46 | hardwire | each time the line goes thru a gridsquare it gets drawn |
22:22.48 | hardwire | err |
22:22.51 | hardwire | put int he gridsquare list |
22:23.00 | hardwire | well.. thats a lot of repeat draws |
22:23.08 | hardwire | I can stop repeat drawing.. thats no problem |
22:23.11 | TheMasterMind1 | lot of repeat storage too |
22:23.19 | hardwire | loooots |
22:23.27 | hardwire | there is no good way to solve that either.. |
22:23.31 | TheMasterMind1 | yea |
22:23.41 | TheMasterMind1 | i'm working on a script to make cdb out of tiger data |
22:23.46 | hardwire | neat! |
22:23.49 | hardwire | that should be great |
22:23.50 | hardwire | and fast |
22:23.50 | TheMasterMind1 | i think i can optimize stuff a little more, i'll play around with it |
22:23.57 | hardwire | just say how |
22:25.10 | TheMasterMind1 | i'm going to try storing list of nodes, and then each record has a start and end node, and you don't need to store boundaries cuz you can tell from the node coordinates. and the street names are repeated a lot, so i'll make a index of those.. |
22:26.55 | hardwire | I don't understand why you would stop storing boundaries |
22:27.01 | hardwire | if you store nodes then that takes up lots more space |
22:27.23 | TheMasterMind1 | yea |
22:27.34 | hardwire | hmm |
22:27.36 | TheMasterMind1 | i'll play around with it |
22:27.39 | hardwire | ookay |
22:28.17 | hardwire | the world map has soo many gridsquares that it takes a while to even look for dupes |
22:28.49 | hardwire | I could just use boundaries at this point for drawing it |
22:29.13 | hardwire | even simple bounding box detection for the current frame and its polyline |
22:30.00 | TheMasterMind1 | there's a line in every single gridsquare? |
22:31.47 | hardwire | no |
22:31.58 | hardwire | but when you have a line that travels thru eveery gridsquare on its boundaries |
22:32.05 | hardwire | like.. for the US |
22:32.11 | hardwire | then you have lots of gridsquares referencing everything |
23:33.25 | hardwire | http://bastard.bogomip.com/gct_shot8.png |
23:35.36 | hardwire | thats soo many lines |
23:38.15 | TheMasterMind1 | heh |
23:38.22 | TheMasterMind1 | how long does it take to render |
23:39.23 | hardwire | quite a while |
23:40.13 | TheMasterMind1 | that sucks :\ |
23:40.37 | TheMasterMind1 | its also missing parts of the world |
23:40.37 | TheMasterMind1 | heh |
23:40.56 | hardwire | not sure why that is |
23:42.42 | hardwire | that is 136680 lines |
23:43.33 | TheMasterMind1 | damn |
23:45.05 | hardwire | hmm |
23:45.17 | hardwire | well |
23:45.22 | hardwire | thats got segmenting working too |
23:45.27 | hardwire | so it draws in new segments :) |
23:45.29 | hardwire | err |
23:45.31 | hardwire | continued lines |
23:45.36 | hardwire | that was a few extra lines of code |
23:45.48 | hardwire | I could reduce the segment amount to like 20 |
23:46.04 | hardwire | and for every 20 parts to a segment I could calculate the overall bounding box length |
23:46.14 | hardwire | a**2 + B**2 = c**2 |
23:46.25 | hardwire | that could be a byte basically |
23:46.50 | hardwire | then I would know the length of each segment I am drawing |
23:47.05 | hardwire | if its < something then don't draw that segment (according to the zoom |
23:47.18 | hardwire | instead draw the next segment if it passes |
23:47.28 | hardwire | or |
23:47.40 | hardwire | I could define a list of drawable segments in a quick hash |
23:47.46 | hardwire | per certain zoom levels |
23:47.50 | TheMasterMind1 | yea |
23:47.50 | hardwire | like high mid low |
23:47.52 | TheMasterMind1 | thats a good idea |
23:48.05 | hardwire | cause there are usually gonna be less than 255 segments |
23:48.05 | TheMasterMind1 | zoom level based |
23:49.01 | hardwire | hmmmm |
23:49.08 | hardwire | the only problem is you will have lines joining gaps |
23:49.23 | hardwire | I would have to make the segments interesting |
23:49.26 | hardwire | HEY1 |
23:49.28 | hardwire | I could do this |
23:49.34 | TheMasterMind1 | figure out how many feet is one pixel |
23:49.36 | TheMasterMind1 | and if its less than that |
23:49.41 | TheMasterMind1 | don't draw it |
23:49.51 | hardwire | run a segment.. until it reaches a certain amount of degrees in length.. then split it at that amount |
23:50.02 | hardwire | then I need to store 1 byte |
23:50.10 | hardwire | how many verts are there in this segment |
23:50.24 | hardwire | according to how many verts.. I can skip that whole segment |
23:50.28 | hardwire | or even just parts of that segment |
23:50.32 | TheMasterMind1 | hmm yea |
23:50.33 | hardwire | instead of += 2 for the for loop |
23:50.35 | hardwire | use += 4 |
23:50.40 | hardwire | or += 8 |
23:50.47 | hardwire | thats a damn good solution |
23:51.34 | hardwire | hmm |
23:51.37 | hardwire | actually |
23:51.40 | hardwire | that would not work too well :) |
23:51.46 | TheMasterMind1 | heh |
23:51.49 | hardwire | hold on |
23:52.00 | TheMasterMind1 | i think my idea is good. if you're going to be drawing only one or two pixels, skip it |
23:52.20 | TheMasterMind1 | and based on the zoom, that changes. because more zoom means less feet per pixel |
23:52.46 | hardwire | well.. I don't know if I am only drawing one or two pixels |
23:52.50 | hardwire | w/o knowing the delta |
23:53.04 | hardwire | the distance delta |
23:53.32 | TheMasterMind1 | ya you can calc that |
23:53.38 | hardwire | augh |
23:53.45 | hardwire | that takes up LOTS of cPU |
23:53.51 | TheMasterMind1 | hm yea |
23:53.55 | hardwire | sqrt(deltax**2 + deltay**2) |
23:53.59 | hardwire | already did that |
23:54.00 | TheMasterMind1 | but the data is delta encoded already |
23:54.02 | hardwire | got impatient waiting for it |
23:54.07 | hardwire | no |
23:54.14 | hardwire | its a delta on 2 axis |
23:54.16 | hardwire | not a distance delta |
23:54.20 | TheMasterMind1 | you can do y/x to find slope |
23:54.32 | hardwire | slope == a**2 + b**2 = c**2 |
23:54.33 | TheMasterMind1 | and if x<NUM and y<NUM |
23:54.41 | hardwire | bah.. did that already |
23:54.46 | hardwire | could not find the appropriate coeffecient |
23:54.47 | TheMasterMind1 | ok |
23:54.47 | TheMasterMind1 | fine |
23:54.54 | hardwire | as soon as I dropped 300 lines the world got out of order |
23:54.56 | hardwire | heh |
23:55.20 | hardwire | I just dropped the count in half for drawing |
23:55.23 | hardwire | and it was pretty fast |
23:55.27 | hardwire | but its all fudged up |
23:55.59 | hardwire | I am gonna start splitting stuff a bit |
23:56.01 | TheMasterMind1 | ok |
23:56.07 | hardwire | precalcing slope |
23:56.13 | hardwire | err |
23:56.13 | hardwire | distance |
23:56.16 | hardwire | sorta |
23:56.23 | hardwire | just go until it goes ? .25 degrees |
23:56.27 | hardwire | > |
23:57.11 | hardwire | once it goes that far I am gonna split the lines and encode an extra byte at the beginning for count in segment |
23:57.21 | hardwire | then I can do segment reduction vs overall polyline reduction |
23:57.23 | hardwire | which.. augh |
23:57.25 | hardwire | lemme get a scap :) |
23:58.18 | hardwire | http://bastard.bogomip.com/gct_shot9.png |
23:58.19 | hardwire | heheheh |
23:58.24 | hardwire | 68k lines |
23:58.40 | hardwire | and that makes it so that it does not form a full polygon if need be either |
23:59.19 | TheMasterMind1 | whoa |
23:59.19 | TheMasterMind1 | wtf |
23:59.22 | hardwire | hehehe |
23:59.23 | hardwire | yeh |
23:59.44 | hardwire | if I skip 2 thats fine |
23:59.47 | hardwire | thats two verts |
23:59.50 | hardwire | normal |
23:59.53 | hardwire | if I skip 4.. thats great |