This commit is contained in:
2025-07-06 01:12:08 +02:00
parent 74bf60101c
commit 5a642a4119
11 changed files with 1267 additions and 440 deletions

View File

@@ -125,9 +125,9 @@ def getElevationFromOE(coordinates):
points = []
for i, point in enumerate(coordinates):
c = utm.from_latlon(point[0], point[1])
points.append(FreeCAD.Vector(round(c[0] * 1000, 0),
round(c[1] * 1000, 0),
0))
points.append(FreeCAD.Vector(round(c[0], 0),
round(c[1], 0),
0) * 1000)
return points
# Only get the json response in case of 200 or 201
@@ -136,14 +136,16 @@ def getElevationFromOE(coordinates):
results = r.json()
for point in results["results"]:
c = utm.from_latlon(point["latitude"], point["longitude"])
v = FreeCAD.Vector(round(c[0] * 1000, 0),
round(c[1] * 1000, 0),
round(point["elevation"] * 1000, 0))
v = FreeCAD.Vector(round(c[0], 0),
round(c[1], 0),
round(point["elevation"], 0)) * 1000
points.append(v)
return points
def getSinglePointElevationFromBing(lat, lng):
#http://dev.virtualearth.net/REST/v1/Elevation/List?points={lat1,long1,lat2,long2,latN,longnN}&heights={heights}&key={BingMapsAPIKey}
import utm
source = "http://dev.virtualearth.net/REST/v1/Elevation/List?points="
source += str(lat) + "," + str(lng)
source += "&heights=sealevel"
@@ -153,11 +155,9 @@ def getSinglePointElevationFromBing(lat, lng):
response = requests.get(source)
ans = response.text
# +# to do: error handling - wait and try again
s = json.loads(ans)
print(s)
res = s['resourceSets'][0]['resources'][0]['elevations']
import utm
for elevation in res:
c = utm.from_latlon(lat, lng)
v = FreeCAD.Vector(
@@ -324,7 +324,6 @@ def getSinglePointElevationUtm(lat, lon):
print (v)
return v
def getElevationUTM(polygon, lat, lng, resolution = 10000):
import utm
@@ -448,47 +447,6 @@ def getElevation(lat, lon, b=50.35, le=11.17, size=40):
FreeCADGui.updateGui()
return FreeCAD.activeDocument().ActiveObject
'''
# original::
def getElevation(lat, lon, b=50.35, le=11.17, size=40):
tm.lat = lat
tm.lon = lon
baseheight = 0 #getheight(tm.lat, tm.lon)
center = tm.fromGeographic(tm.lat, tm.lon)
#https://maps.googleapis.com/maps/api/elevation/json?path=36.578581,-118.291994|36.23998,-116.83171&samples=3&key=YOUR_API_KEY
#https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key=YOUR_API_KEY
source = "https://maps.googleapis.com/maps/api/elevation/json?path="
source += str(b-size*0.001) + "," + str(le) + "|" + str(b+size*0.001) + "," + str(le)
source += "&samples=" + str(100)
source += "&key=AIzaSyB07X6lowYJ-iqyPmaFJvr-6zp1J63db8U"
response = urllib.request.urlopen(source)
ans = response.read()
# +# to do: error handling - wait and try again
s = json.loads(ans)
res = s['results']
points = []
for r in res:
c = tm.fromGeographic(r['location']['lat'], r['location']['lng'])
v = FreeCAD.Vector(
round(c[0], 2),
round(c[1], 2),
round(r['elevation'] * 1000, 2) - baseheight
)
points.append(v)
line = Draft.makeWire(points, closed=False, face=False, support=None)
line.ViewObject.Visibility = False
#FreeCAD.activeDocument().recompute()
FreeCADGui.updateGui()
return FreeCAD.activeDocument().ActiveObject
'''
class _ImportPointsTaskPanel:
def __init__(self, obj = None):