2024-05-14 10:02:44 发布
网友
我已经有一些代码来生成2D kml文件,但我对复制类似的图像感兴趣,每个位置都有一个相关的深度剖面:
有没有很好的参考资料(或者python库)来做这件事?我什么也没找到。在
图像参考: 贝尔德,R.W.,S.W.马丁,D.L.韦伯斯特和B.L.索瑟尔。2014对太平洋导弹靶场设施中暴露于中频主动声纳的卫星标记齿形目动物的模拟接收声压级和运动进行评估:2011年2月至2013年2月。为美国太平洋舰队准备,由HDR环境、运营和建设公司提交给NAVFAC PAC
如果你使用的是java,我有代码来生成kml来在googleearth中显示3D跟踪。(另外,每个点都有一条从空中到地面的垂直线)。 (假设:由于您有二维代码,可能已经有了从kml21.xsd转换而来的JavaPOJO代码。) (另请注意,如果您知道任何免费网站供我上传图片,我可以附上一张图片。) 希望这有助于:
package com.googleearth.util; import java.util.List; import javax.xml.bind.JAXBElement; import com.a.googleearth.entities.GoogleEarthView; import com.a.googleearth.model.AltitudeModeEnum; import com.a.googleearth.model.DocumentType; import com.a.googleearth.model.FolderType; import com.a.googleearth.model.KmlType; import com.a.googleearth.model.LineStringType; import com.a.googleearth.model.LineStyleType; import com.a.googleearth.model.ObjectFactory; import com.a.googleearth.model.PlacemarkType; import com.a.googleearth.model.StyleType; public class KmlService { public static final byte[] blue = new byte[]{(byte)0x64,(byte)0xF0,(byte)0x00,(byte)0xFF}; private static ObjectFactory factory = new ObjectFactory(); static final String DEFAULT_REGISTRATION_FOR_EMPTY = "EMPTY"; public static JAXBElement<KmlType> createKml(List<GoogleEarthView> listGoogleEarthDBView) { KmlType kml = factory.createKmlType(); DocumentType document = factory.createDocumentType(); kml.setFeature(factory.createDocument(document)); { LineStyleType redLineStyle = factory.createLineStyleType(); // http://www.zonums.com/gmaps/kml_color/ redLineStyle.setColor(new byte[]{(byte)0xFF,(byte)0xF0,(byte)0x00,(byte)0x14}); redLineStyle.setWidth(5f); StyleType style = factory.createStyleType(); style.setId("blueLine"); style.setLineStyle(redLineStyle); document.getStyleSelector().add(factory.createStyle(style)); } FolderType folder = factory.createFolderType(); folder.setName(listGoogleEarthDBView.get(0).getFolderName()); document.getFeature().add(factory.createFolder(folder)); PlacemarkType currentPlacemark = null; for (GoogleEarthView view : listGoogleEarthDBView) { if (currentPlacemark == null || currentPlacemark.getName().equalsIgnoreCase("F0001") == false) { if (currentPlacemark != null) { JAXBElement<LineStringType> lineString = (JAXBElement<LineStringType>) currentPlacemark.getGeometry(); lineString.getValue().getCoordinates().add(view.getLongitude() + "," + view.getLatitude() + "," + view.getPressureAltitude()+"\n"); } currentPlacemark = createF0001Placemark(); folder.getFeature().add(factory.createPlacemark(currentPlacemark)); } JAXBElement<LineStringType> lineString = (JAXBElement<LineStringType>) currentPlacemark.getGeometry(); lineString.getValue().getCoordinates().add(view.getLongitude() + "," + view.getLatitude() + "," + view.getPressureAltitude()+"\n"); } JAXBElement<KmlType> kmlElement = factory.createKml(kml); return kmlElement; } private static PlacemarkType createF0001Placemark() { PlacemarkType placeMark = factory.createPlacemarkType(); placeMark.setName("F0001"); placeMark.setStyleUrl("#blueLine"); LineStringType flyhtStreamLineString = factory.createLineStringType(); flyhtStreamLineString.setAltitudeMode(AltitudeModeEnum.ABSOLUTE); flyhtStreamLineString.setExtrude(Boolean.TRUE); placeMark.setGeometry(factory.createLineString(flyhtStreamLineString)); return placeMark; } }
您可以使用其他语言生成一些kml文件,如以下链接中的文件:
https://sites.google.com/site/canadadennischen888/home/kml/3d-tracking
希望能帮上忙
如果你使用的是java,我有代码来生成kml来在googleearth中显示3D跟踪。(另外,每个点都有一条从空中到地面的垂直线)。 (假设:由于您有二维代码,可能已经有了从kml21.xsd转换而来的JavaPOJO代码。) (另请注意,如果您知道任何免费网站供我上传图片,我可以附上一张图片。) 希望这有助于:
您可以使用其他语言生成一些kml文件,如以下链接中的文件:
https://sites.google.com/site/canadadennischen888/home/kml/3d-tracking
希望能帮上忙
相关问题 更多 >
编程相关推荐