Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Mayer
CircularGreenSimCity
Commits
923449be
Commit
923449be
authored
Mar 26, 2024
by
Eric Duminil
Browse files
Adding color and description
parent
9c29c9e4
Changes
2
Hide whitespace changes
Inline
Side-by-side
python_scripts/add_trees_to_open_street_map/add_trees.py
View file @
923449be
...
...
@@ -110,10 +110,9 @@ def place_trees(forest, ways, region, to_local, tree_distance, min_distance_2):
else
:
color
=
'gray'
local_xy_s
=
[
to_local
.
transform
(
node
.
lon
,
node
.
lat
)
for
node
in
way
.
nodes
]
road_xy_s
=
[
to_local
.
transform
(
node
.
lon
,
node
.
lat
)
for
node
in
way
.
nodes
]
tree_path
=
LineString
(
local
_xy_s
)
tree_path
=
LineString
(
road
_xy_s
)
if
width
:
road_as_polygon
=
tree_path
.
buffer
(
width
/
2
,
cap_style
=
'flat'
)
...
...
@@ -123,9 +122,8 @@ def place_trees(forest, ways, region, to_local, tree_distance, min_distance_2):
# NOTE: Could try to guess width depending on highway type.
displayed_width
=
1
xs
,
ys
=
zip
(
*
local_xy_s
)
plt
.
plot
(
xs
,
ys
,
linewidth
=
displayed_width
,
c
=
color
,
alpha
=
0.8
,
zorder
=-
1
)
road_xs
,
road_ys
=
zip
(
*
road_xy_s
)
plt
.
plot
(
road_xs
,
road_ys
,
linewidth
=
displayed_width
,
c
=
color
,
alpha
=
0.8
,
zorder
=-
1
)
distances
=
np
.
arange
(
0
,
tree_path
.
length
,
tree_distance
)
potential_trees
=
[
tree_path
.
interpolate
(
...
...
@@ -137,7 +135,10 @@ def place_trees(forest, ways, region, to_local, tree_distance, min_distance_2):
x
=
potential_tree
.
x
y
=
potential_tree
.
y
if
local_region
.
contains
(
geometry
.
Point
(
x
,
y
)):
forest
.
add_tree_if_possible
(
min_distance_2
,
x
,
y
)
forest
.
add_tree_if_possible
(
min_distance_2
,
x
,
y
,
color
=
'red'
,
description
=
'fake_tree'
)
return
forest
.
xs_ys
...
...
@@ -213,7 +214,7 @@ def main(wkt_polygon, epsg_id, tree_distance, min_distance, import_tree_shp):
set_plot
(
bounds
,
to_local
)
tree_xs
,
tree_ys
=
place_trees
(
existing_forest
,
ways
,
region
,
to_local
,
tree_distance
,
min_distance
**
2
)
print
(
existing_forest
)
print
(
repr
(
existing_forest
)
)
plot_trees
(
bounds
,
tree_xs
,
tree_ys
,
tree_distance
)
export_map
(
bounds
,
tree_xs
,
tree_ys
,
epsg_id
)
...
...
python_scripts/add_trees_to_open_street_map/tree.py
View file @
923449be
...
...
@@ -11,6 +11,7 @@ class Tree:
radius
:
float
=
None
description
:
str
=
None
type
:
str
=
None
color
:
str
=
'green'
def
__len__
(
self
):
return
2
# x & y
...
...
@@ -28,11 +29,11 @@ class Forest:
self
.
trees
=
existing_trees
def
add_tree_if_possible
(
self
,
min_distance_2
,
x
,
y
,
*
params
):
def
add_tree_if_possible
(
self
,
min_distance_2
,
x
,
y
,
*
*
k
params
):
_nearest_tree
,
distance_2
=
self
.
kd_tree
.
search_nn
((
x
,
y
))
if
distance_2
>
min_distance_2
:
self
.
kd_tree
.
add
((
x
,
y
))
self
.
trees
.
append
(
Tree
(
x
,
y
,
*
params
))
self
.
trees
.
append
(
Tree
(
x
,
y
,
*
*
k
params
))
@
property
def
xs_ys
(
self
):
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment