加载kml图层及自动标注
来源:互联网 发布:js实现div显示和隐藏 编辑:程序博客网 时间:2024/04/29 14:03
private var zirancun_label:VectorLayer;
//添加kml文件作为图层(要求必须是利用图层管理器矢量图层下的导出工具生成,kml格式与geoserver导出的不一样)
//1.用globalmapper工具导出矢量kml文件。
//2.修改kml文件,参考openscale自带组件图层管理器导出的kml文件格式(!!不是geoserver导出的kml文件,当然可以修改之)。
//...主要需要替换<kml xmlns:kml="http://www.opengis.net/kml/2.2">
//...需要删除geomapper导出的kml中的folder目录。
//3.标注显示乱码问题,用记事本打开kml文件,然后保存kml文件为utf-8格式即可。
//4.复制kml文件到geoserver的webapps目录,重启geoserver
protected function button1_clickHandler(event:MouseEvent):void
{
kml_layer = new KML("point_zirancun"
, "http://localhost:8080/geoserver/point_zirancun.kml");
kml_layer.maxExtent=new Bounds(113.6528,35.8186,113.7064,35.8410);
map1.map.addLayer(kml_layer);
//添加标注图层
zirancun_label=new VectorLayer("zirancun_label");
_map.addLayer(zirancun_label);
}
//产生自动标注图层
protected function button10_clickHandler(event:MouseEvent):void
{
//xml用法示例:
//var oxml:XML=new XML("<order> <item id='1'> <menuName>burger</menuName><price>3.95</price></item> <item id='2'><menuName>fries</menuName><price>1.45</price> </item> </order>") ;//kml_layer.data;
//Alert.show(oxml.item[0].@id); //值== 1
//Alert.show(oxml.item[0].menuName); // 值== burger
//oxml.item.(menuName=="burger").@id=111; //查找根目录item标签中menuName=burger,并把它的id属性设置为111
//Alert.show(oxml.item.(menuName=="burger").@id) //值=111
//Alert.show(oxml.item); //选择器返回的是所有标签为item的字符串
//Alert.show(oxml); //选择器返回的的是xml内的整个字符串内容。
//Alert.show(oxml.child("item")[0].@id + "," + oxml.child("item")[0].menuName);
//根据geoserver导出的kml图层格式读取kml文件中的数据。!!!标签尖括号内的叫属性,标签段之间的叫节点。
var oxml:XML=kml_layer.data;
//Alert.show(oxml.toString().substr(0,400));
//Alert.show(oxml.Document.Placemark[0].name); //!! 路径,然后。。。
//Alert.show(ft_coordinates);
//Alert(oxml.Document.Placemark.children().length().toString());
//为kml图层添加标注图层
for each (var placemark:XML in oxml.Document.Placemark)
{
//Alert.show(placemark.name);
var ft_name:String=placemark.name;//oxml.Document.Placemark[0].name;
var ft_coordinates:String=placemark.Point.coordinates;//oxml.Document.Placemark[0].Point.coordinates[0];//!! 路径,然后。。。
var s:Array=ft_coordinates.split(",");
//Alert.show("x=" + s[0] + ",y=" + s[1] + ",name=" + ft_name);
var pt:org.openscales.geometry.Point=new org.openscales.geometry.Point(s[0],s[1]);
var ft:LabelFeature=new LabelFeature(pt);
ft.text=ft_name; ////标注显示乱码问题,用记事本打开kml文件,然后保存kml文件为utf-8格式即可。
zirancun_label.addFeature(ft);
zirancun_label.redraw(true);
}
}
参考kml文件格式:(openscale 的KML对象可以正常加载的格式)
<?xml version="1.0" encoding="iso-8859-1"?>
<kml xmlns:kml="http://www.opengis.net/kml/2.2">
<Document>
<name>Point Features</name>
<!-- Begin Style Definitions -->
<Style id="point1">
<IconStyle><Icon>kml_ext_files\kml_symbol_dot.png</Icon></IconStyle>
</Style>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 圪道水 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.6627714406,35.8357811560,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 上茅草坪 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.6828721723,35.8328115865,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 船仓 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.6956112696,35.8312104008,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 五碣谷洞 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.7021266698,35.8287611062,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 寨碣 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.6879315954,35.8271057229,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 四水圪节 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.8543131177,35.5287351634,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 东反烟 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>113.8251642195,35.5795422254,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 洪石沟 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>114.0555112391,35.4256741992,0</coordinates>
</Point>
</Placemark>
<Placemark>
<description>Unknown Point Feature</description>
<name><![CDATA[ 许河 ]]></name>
<styleUrl>#point1</styleUrl>
<Point>
<coordinates>114.0308726784,35.1994823471,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
- 加载kml图层及自动标注
- SharpMap增加标注图层LabelLayer及标注样式控制
- ArcGISEngine实现图层输出kml
- 添加标注图层
- 按照比例尺标注图层
- Extjs自动加载model层
- AE二次开发,右键图层,设置图层要素标注
- ASP.NET Google Maps Javascript API V3 实战基础篇一KML 和 GeoRSS 图层
- KML
- 矢量图层标注
- 在C#中应用MapObjects(图层标注)
- 在C#中应用MapObjects(图层标注)
- ArcEngine 图层标注 (根据字段、角度)
- 百度地图:自定义结果面板+分页+图层标注
- ArcEngine 图层标注 (根据字段、角度)
- openlayers 2实现vector图层文字标注
- ArcEngine 图层标注 (根据字段、角度)
- globecontrol图层加载
- Hadoop学习总结之二:HDFS读写过程解析2(zz)
- 凡客签约鸟叔,打造不怕过气的“快时尚”理念
- 内存数据库
- Intent中的Flag与Task
- VIJOS P1059 积木城堡
- 加载kml图层及自动标注
- 携我手,共赴一场盛世的花季
- Io 异常: The Network Adapter could not establish the connection
- 世界四大耳机品牌,附排名。
- 通知中心
- 241 字母统计
- CVX:基于matlab的凸优化包
- struts1的工作原理
- C语言中printf("lld")和printf("I64d")