forked from MapComplete/MapComplete
		
	Properly render a downloaded way, fix #297
This commit is contained in:
		
							parent
							
								
									9cb591dfc3
								
							
						
					
					
						commit
						8aa830f15e
					
				
					 4 changed files with 218 additions and 5 deletions
				
			
		|  | @ -130,7 +130,7 @@ export abstract class OsmObject { | |||
|                     osmObject.SaveExtraData(element, []) | ||||
|                     break; | ||||
|             } | ||||
|             osmObject.LoadData(element) | ||||
|             osmObject?.LoadData(element) | ||||
|             objects.push(osmObject) | ||||
|         } | ||||
|         return objects; | ||||
|  | @ -321,7 +321,15 @@ export class OsmWay extends OsmObject { | |||
|         let latSum = 0 | ||||
|         let lonSum = 0 | ||||
| 
 | ||||
|         console.log("element is", element, "nodes are", allNodes) | ||||
| 
 | ||||
|         const nodeDict = new Map<number, OsmNode>() | ||||
|         for (const node of allNodes) { | ||||
|             nodeDict.set(node.id, node) | ||||
|         } | ||||
| 
 | ||||
|         for (const nodeId of element.nodes) { | ||||
|             const node = nodeDict.get(nodeId) | ||||
|             const cp = node.centerpoint(); | ||||
|             this.coordinates.push(cp); | ||||
|             latSum = cp[0] | ||||
|  | @ -338,11 +346,19 @@ export class OsmWay extends OsmObject { | |||
|             "type": "Feature", | ||||
|             "properties": this.tags, | ||||
|             "geometry": { | ||||
|                 "type": "LineString", | ||||
|                 "type": this.isPolygon() ? "Polygon" : "LineString", | ||||
|                 "coordinates": this.coordinates.map(c => [c[1], c[0]]) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     private isPolygon(): boolean { | ||||
|         if (this.coordinates[0] !== this.coordinates[this.coordinates.length - 1]) { | ||||
|             return false; // Not closed
 | ||||
|         } | ||||
|         return Utils.isPolygon(this.tags) | ||||
| 
 | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| export class OsmRelation extends OsmObject { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue