当我设置新地标时,我想创建一个带有UTM坐标的kml。这是我的代码,但我不知道在哪里设置此属性
//part of the code
counter++;
placemark= makePlacemark(hitTestResult.getLatitude(), hitTestResult.getLongitude(),
hitTestResult.getAltitude(), ge.ALTITUDE_ABSOLUTE, 'T');
//set placemark name
placemark.setName("PLM" + counter);
//set the placemark on the map
ge.getFeatures().appendChild(placemark);
var output = placemark.getKml();
alert(output);
function makePlacemark(lat, lng, alt, altMode, iconStr) {
var icon = ge.createIcon('');
icon.setHref('http://maps.google.com/mapfiles/kml/paddle/' + iconStr + '.png');
var style = ge.createStyle('');
style.getIconStyle().setIcon(icon);
style.getIconStyle().getHotSpot().set(0.5, ge.UNITS_FRACTION, 0,ge.UNITS_FRACTION);
var pt = ge.createPoint('');
pt.set(lat, lng, alt, altMode, false, false);
var pm = ge.createPlacemark('PLM' + counter);
pm.setGeometry(pt);
pm.setStyleSelector(style);
return pm;
}
您需要从UTM转换(重新投影)坐标 投射到epsg:4326
这是否意味着Google地球应用程序使用其他转换来显示UTM中的坐标?使用它工具 - >选项
答案 0 :(得分:2)
KML规范指定WGS84基准面上的纬度和经度。不支持任意预测。
您需要将坐标从UTM投影转换(重投影)到epsg:4326,然后适当地输入纬度和经度。
答案 1 :(得分:0)
我找到的最好的服务器端坐标转换是:
http://www.jstott.me.uk/phpcoord/
我已经将这个用于我的Google地图和GE插件代码多年。
任何人都知道javascript等价物吗?
答案 2 :(得分:0)
如前面的帖子中所述,您需要将UTM坐标转换为长期匹配
这个客户端的一个好工具是: http://trac.osgeo.org/proj4js
见例子:
http://trac.osgeo.org/proj4js/wiki/UserGuide
也在之前的帖子中说过: 目标坐标epsg:4326,示例将它们作为源
proj4的来源将是你的。
使用proj4js,UTM 10区北,http://spatialreference.org/ref/epsg/32610/:
var dest= new Proj4js.Proj(‘EPSG:4236’);
var Source= new Proj4js.Proj(‘EPSG:32610’);
// transforming utm ngcoordinates
var p = new Proj4js.Point(489399,5456814);
Proj4js.transform(source, dest, p);
var lng= p.x ;
var lat= p.y;