`
lihao
  • 浏览: 25584 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【学习笔记】GIS开发——配置OpenScales开发环境

    博客分类:
  • GIS
阅读更多
学习教程http://blog.csdn.net/dragoonnet/article/details/6334228配置的第一个工程。
代码和相关注释:
<?xml version="1.0" encoding="utf-8"?>
<!--
	增加了一个命名空间:xmlns:os="http://openscales.org",使"os"的命名空间与OpenScales-fx库连接成功
-->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   minWidth="955"
			   minHeight="600"
			   xmlns:os="http://openscales.org"
			   creationComplete="initMap();">
	
	<fx:Declarations>
	</fx:Declarations>
	<!--
		创建一个地图对象:
		id 是唯一标示,这儿我们命名为fxmap.
		width 和 height限制地图的大小.
		zoom 设置地图开始的缩放等级.
		center 代表地图居中的坐标.应该与基本层有相同的投影.
		x 和 y 决定了地图空间在应用程序的位置.
	-->
	<os:Map id="fxmap"
			width="500"
			height="600"
			center="-100.10929,40.48437"
			zoom="3"
			x="100"
			y="100">
		
		<!--
			增加一个开放的街道地图(OSM)层:proxy 参数不是必须的,但是可以针对OSM服务器可以阻止安全错误,不合法的跨域操作等.
			其他的街道层还有 : Cycle Map, Osmarender 都可以在地图作为OSM数据,只是他们有其他的渲染规则.
			eg:<os:Osmarender name="base" proxy="http://www.openscales.org/proxy.php?url=" />
		-->
		<os:Mapnik name="base"
		proxy="http://www.openscales.org/proxy.php?url=" />
		<!--
			KML层没有设置为基本层,所以它将在OSM层上面.
		-->
		<os:KML url="http://code.google.com/intl/fr/apis/kml/documentation/KML_Samples.kml" proxy="http://openscales.org/proxy.php?url=" numZoomLevels="20" style="{Style.getDefaultLineStyle()}"/>
		<!--
			鼠标事件:	
			鼠标滚轮缩放 (WheelHandler)
			点击事件 (ClickHandler)
			鼠标移动或者拖放事件 (DragHandler)
		-->
		<os:DragHandler id="dragHandler" active="true"/>
		<os:WheelHandler/>
		<!--鼠标焦点事件-->
		<os:MousePosition x="10" y="{fxmap.height-20}" displayProjection="EPSG:4326"/>
		<!--
			OGC层的范例: Web Feature Service (WFS)¶
			OGC(开放地理空间联盟)定义了类似WFS,WMS等多个协议
			你在OpenScales-fx-example中可以找到很多关于OGC层的例子.下面是这个例子提供了网络要素服务作为基本层。
		-->
		<os:WFS name="Topp States (WFS)" url="http://openscales.org/geoserver/wfs" typename="topp:states" projection="EPSG:4326" version="1.0.0" style="{Style.getDefaultSurfaceStyle()}"/>
	</os:Map>
	<!--地图控制栏-->
	<os:PanZoom map="{map}"
				x="{fxmap.x+10}"
				y="{fxmap.y+10}"/>
	
	<fx:Script>
		<![CDATA[
			import org.openscales.core.Map;
			import org.openscales.core.feature.PointFeature;
			import org.openscales.core.layer.FeatureLayer;
			import org.openscales.core.style.Style;
			import org.openscales.geometry.Point;
			import org.openscales.proj4as.ProjProjection;
			import org.openscales.core.feature.CustomMarker;
			import org.openscales.geometry.basetypes.Location;
			
			[Bindable] private var map:Map = null;
			private function initMap():void {
				map = fxmap.map;
				/**
				 *添加标注 
				 */
				//创建一个功能层
				var markers:FeatureLayer = new FeatureLayer("NameOfYourLayerWithMarkers");
				//定义使用层的投影
				markers.projection = new ProjProjection("EPSG:4326");
				//地图标注显示的分辨率
				markers.generateResolutions(19);
				//定义一个默认样式
				markers.style = Style.getDefaultPointStyle();
				
				//add the first marker
				//创建一个正确的坐标点 (需要与层的投影相同)
				var marker:PointFeature = PointFeature.createPointFeature(new Location(-114.85680,45.75336));
				markers.addFeature(marker);
				
				//add a second marker
				marker = PointFeature.createPointFeature(new Location(-94.85780,45.75336));
				markers.addFeature(marker);
				
				//add marker with different symbol, writing url address
				markers.addFeature(CustomMarker.
					createUrlBasedMarker("http://earth.google.com/intl/en_uk/outreach/images/add_placemark.png",
						new Location(-101.85580,45.75336)));
				
				//add the layer
				map.addLayer(markers);
			}
		]]>
	</fx:Script>
	
</s:Application>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics