首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Sketchup获得Sketchup模型的位置界

无法使用Sketchup获得Sketchup模型的位置界
EN

Stack Overflow用户
提问于 2016-06-30 11:36:26
回答 1查看 213关注 0票数 2

我有一个Sketchup三维模型,是地理位置。我可以得到模型的地理位置如下:-

代码语言:javascript
复制
latitude = Sketchup.active_model.attribute_dictionaries["GeoReference"]["Latitude"]

longitude = Sketchup.active_model.attribute_dictionaries["GeoReference"]["Longitude"]

现在我想在3D地球仪上渲染这个模型。所以我需要三维模型的位置边界。

基本上,我需要在2d地图上的模型包围框。

现在,我正在从模型的角(8个角)中提取同样的内容。

代码语言:javascript
复制
// This will return left-front-bottom corner.
lowerCorner = Sketchup.active_model.bounds.corner(0)
// This will return right-back-top corner.
upperCorner = Skectup.active_model.bounds.corner(6)

但它返回简单的几何点,以米为单位,以英寸为单位,取决于模型。

例如,我在sketchup中上传了模型。下面是 getting lowerCornerupperCorner的值,我通过对上述模型使用上面的代码得到这些值。

代码语言:javascript
复制
geoLocation : 25.141407985864, 55.18563969191 //lat,long
lowerCorner : (-9483.01089", -6412.376053", -162.609524") // In inches
upperCorner : (-9483.01089", 6479.387909", 12882.651999") // In inches

所以我的第一个问题是我做的对不对?第二个问题是,如果是的话,第一个问题是如何以lat长格式获得lowerCorner和upperCorner的值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-01 18:02:10

但它返回简单的几何点,以米为单位,以英寸为单位,取决于模型。

Geom::BoundingBox.corner返回一个Geom::Point3d。它的x,y和z成员是一个Length。这总是返回SketchUp的内部值,即英寸。

但是,当您使用Length.to_s时,它将使用当前模型的单元设置,并将值格式化为该值。当您调用Geom::Point3d.to_s时,它将使用Length.to_s。另一方面,如果您调用Geom::Point3d.inspect,它将打印内部单位(英寸)而不进行格式化。

我建议您使用geo-location:Sketchup::Model.georeferenced?的API方法,而不是像这样直接访问模型的属性。

通过它的声音,您可能会发现Sketchup::Model.point_to_latlong有用。

示例-我将一个SketchUp模型定位到挪威特隆赫姆的城镇广场(地理位置:东经63°25‘47“北纬10°23’36”):

代码语言:javascript
复制
model = Sketchup.active_model
bounds = model.bounds
# Get the base of the boundingbox. No need to get the top - as the
# result doesn't contain altiture information.
(0..3).each { |i|
  pt = bounds.corner(i)
  latlong = model.point_to_latlong(pt)
  latitude = latlong.x.to_f
  longitude = latlong.y.to_f
  puts "#{pt.inspect} => #{longitude}, #{latitude}"
}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38121973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档