对于开源WebGIS :我首选GeoServer+PostGIS+Openscales
下面开始Openscales1.2应用的简单入门
FlexApp.mxml
<?xml version="1.0" encoding="utf-8"?>
<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"
width="100%" height="100%"
xmlns:os="http://openscales.org"
creationComplete="initMap();" resize="resizeMap()">
<fx:Style source="FlexApp.css"/>
<fx:Declarations>
</fx:Declarations>
<os:Map id="fxmap" width="100%" height="100%" zoom="5" center="4.833,45.767">
<os:WMSC name="Nasa" url="http://openscales.org/geoserver/gwc/service/wms" layers="bluemarble"
format="image/jpeg" maxExtent="-180,-90,180,90"/>
<os:WheelHandler/>
<!--图层管理器 -->
<os:ControlPanel title="图层管理器" x="{width - 225}" y="10" width="215">
<os:LayerManager />
</os:ControlPanel>
<!-- 鹰眼-->
<s:Panel id="miniMapPanel" title="Overview map" x="{width-miniMapPanel.width-10}" y="{height-miniMapPanel.height-10}">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<os:OverviewMap id="miniMap" width="100%" height="100%" extentColor="0xFF3300" newExtentColor="0x00FF33">
<os:CycleMap name="cyclemap" proxy="http://openscales.org/proxy.php?url="/>
</os:OverviewMap>
</s:Panel>
<!-- 比例尺 -->
<os:ScaleLine x="{10}" y="{height-80}" />
<!-- 显示鼠标坐标 -->
<os:MousePosition x="{fxmap.width / 2}"
y="{fxmap.height-20}"
displayProjection="EPSG:4326"/>
<!-- 导航控件1 -->
<os:PanZoom map="{map}"
x="{fxmap.x+10}"
y="{fxmap.y+10}" width="112" height="126"/>
</os:Map>
<!--导航控件2
<os:ControlPanel x="10" y="200" width="140" title="Navigation2">
<os:Pan map="{map}"/>
<mx:HBox width="100%" paddingLeft="5" paddingRight="5">
<os:Zoom map="{map}"/>
<mx:Spacer width="100%" />
<os:ZoomBox map="{map}" width="32" height="32"/>
</mx:HBox>
</os:ControlPanel>
-->
<!-- 工具栏 -->
<os:ControlPanel x="100" height="57" y="10" title="工具栏">
<os:layout>
<s:HorizontalLayout/>
</os:layout>
<mx:Button id="zoomInBtn" click="doMap('zoomin')" label="放大"/>
<mx:Button id="zoomOutBtn" click="doMap('zoomout')" label="缩小"/>
<mx:Button id="fullExtentBtn" click="{map.zoomToMaxExtent()}" label="全屏"/>
<mx:Button id="panBtn" click="doMap('pan')" label="漫游"/>
<mx:Button id="prevExtentBtn" click="{navToolbar.zoomToPrevExtent()}" label="前一视图"/>
<mx:Button id="nextExtentBtn" click="{navToolbar.zoomToNextExtent()}" label="后一视图"/>
</os:ControlPanel>
<fx:Script>
<![CDATA[
import org.openscales.core.Map;
import org.openscales.core.Trace;
import org.openscales.core.feature.Marker;
import org.openscales.core.feature.CustomMarker;
import org.openscales.core.feature.PointFeature;
import org.openscales.core.layer.FeatureLayer;
import org.openscales.core.popup.Anchored;
import org.openscales.core.style.Style;
import org.openscales.geometry.Point;
import org.openscales.geometry.basetypes.Location;
import org.openscales.proj4as.ProjProjection;
import toolbars.Navigation;
[Bindable] private var map:Map = null;
public var markLyon:Marker;
[Bindable] public var displayTrace:Boolean=false;
[Bindable] public var displayFirebugTrace:Boolean=false;
private var navToolbar:Navigation=new Navigation();
private function initMap():void {
Trace.useFireBugConsole=displayFirebugTrace;
map = fxmap.map;
this.navToolbar.map=map;
var markers:FeatureLayer = new FeatureLayer("customMarkerLayer");
//添加默认标记
markers.projection = new ProjProjection("EPSG:4326");
markers.generateResolutions(19);
markers.style = Style.getDefaultPointStyle();
var marker:PointFeature = PointFeature.createPointFeature(new Location(-94.49783,40.51800));
markers.addFeature(marker);
//markers.addFeature(CustomMarker.createUrlBasedMarker("http://earth.google.com/intl/en_uk/outreach/images/add_placemark.png",new Location(-94.49783,40.51800)));
//添加标记,绑定事件弹出气泡
var lonlat:Location = new Location(-95.49783,42.51800, ProjProjection.getProjProjection("EPSG:4326"));
markLyon = new Marker(new org.openscales.geometry.Point(lonlat.lon, lonlat.lat), {popupContentHTML: "This is a popup<br /><b>Bold text</b><br /><u>Link to <a href=\"http://openscales.org\" target=\"_new\">OpenScales</a></u>"});
markLyon.addEventListener(MouseEvent.CLICK, showPopup);
markers.addFeature(markLyon);
map.addLayer(markers);
var vect:FeatureLayer = new FeatureLayer("Reprojected vector");
vect.projection = ProjProjection.getProjProjection("EPSG:4326");
vect.style = Style.getDefaultPointStyle();
var p:org.openscales.geometry.Point = new org.openscales.geometry.Point(lonlat.lon, lonlat.lat);
vect.generateResolutions(19);
vect.addFeature(new PointFeature(p));
map.addLayer(vect);
}
private function doMap(tool:String):void{
navToolbar.activate(tool);
}
private function resizeMap():void {
miniMap.height = 0.2 * this.height;
miniMap.width = this.width * miniMap.height / this.height;
}
private function showPopup(e:MouseEvent):void {
var popup:Anchored = new Anchored();
popup.feature = markLyon;
map.addPopup(popup, true);
}
]]>
</fx:Script>
</s:Application>
效果如图:

本例实现了地图的基本功能包括:导航栏、工具栏、图层管理器、鹰眼、比例尺、鼠标坐标显示、标注气泡显示等。

- 大小: 94.6 KB
分享到:
相关推荐
### OpenScales简介 OpenScales是一款开源的地图前端框架,主要应用于基于Web的地图应用程序开发。它支持多种矢量图层,并且拥有强大的扩展性。OpenScales能够在多种平台上运行,包括桌面端和移动端。 #### 核心...
### OpenScales图层控制与DataGrid checkBox应用详解 #### 一、OpenScales图层控制概述 **OpenScales** 是一个强大的地理信息系统(GIS)框架,它为开发人员提供了构建复杂地理空间应用程序的能力。在本篇内容中,...
"openscales 示例"是一个关于OpenScales库的实践项目,旨在帮助开发者更好地理解和应用这个库。OpenScales是一个开源的GIS(地理信息系统)框架,它提供了在多种平台和环境中处理地图和地理数据的能力。这个压缩包...
"openscales-openscales" 是一个与地理信息系统(GIS)相关的开源项目,主要与"flex_gis"这一标签紧密关联。在GIS领域,OpenScales是一个用于JavaScript开发的地图库,它提供了一种灵活的方式来在Web应用程序中展示...
标题中提到的“OpenScales访问GeoWebCache的切片”主要涉及到两个开源软件组件:OpenScales和GeoWebCache。OpenScales是一个开源的地图API,它支持各种类型的地理空间数据和地图服务,并能够轻松集成到Flash或Flex...
### OpenScales学习知识点解析 #### 一、OpenScales概览 OpenScales是一款用于构建地理信息系统(GIS)应用程序的开源框架,基于Adobe Flash和ActionScript 3(AS3)。该框架的主要特点是将复杂的GIS功能封装成...
OpenScales是一个优秀的前台地图框架,开发者可以用来开发各种网络版、手机版和桌面版的地图程序。 她是基于ActionSctip 3 和 Flex写的,能够支持各种标准的地图服务,比如WMS、WFS、TMS、OSM等。 她是开源的、免费...
openscales 目前最新开发开源包 附有事例 1.2-beta3
在IT领域,尤其是在GIS(地理信息系统)或者地图应用开发中,`openscales`是一个非常重要的开源库,它提供了丰富的地图渲染和交互功能。这个库旨在帮助开发者构建具有高性能和高度可定制的地图应用。当我们谈到...
OpenScales代码结构分析 OpenScales是一款开源的GIS( Geographic Information System)组件,它提供了一个灵活的框架来开发基于Web的GIS应用程序。通过对OpenScales的代码结构进行分析,我们可以更好地理解其设计...
《OpenScales开发工具包详解》 OpenScales是一款强大的GIS(地理信息系统)开发工具包,专注于为开发者提供灵活、高效的地图集成与处理能力。它以其开源、跨平台的特性,成为了众多开发者在构建地图应用时的首选。...
《openscales学习笔记8.24》主要涵盖了OpenScales库的使用和理解,这是一个针对地图数据处理和显示的开源工具。在这个学习笔记中,我们将深入探讨OpenScales的源码,以及它如何与工具结合,帮助开发者创建交互式地图...
**OpenScales参考示例工程详解** OpenScales是一个开源的JavaScript库,它为Web应用程序提供了强大的地图功能。这个库特别适用于那些希望在网站或应用中集成交互式地图的开发者。OpenScales支持多种地图服务提供商...
OpenScales2.2 Map.as 适用于OpenScales移动项目
openScale 的自我介绍中,就提到 openLayer ,感觉真的和网上说的一样: openScale 是 对openLayer 的AS 翻译。 openLayer 相当牛逼,个人觉得……与 google map 的JS版对比。openLayer 将我所能想到的地图操作都加...
OpenScales是一个开源的GIS(地理信息系统)库,它允许开发者在Flex或ActionScript项目中轻松地集成地图功能。在这个基本功能事例中,我们将深入探讨如何使用OpenScales库创建一个包含多个关键组件的地图应用。 ...
《OpenScales地图拉框缩放技术解析》 在IT领域,地图的展示与操作是不可或缺的一部分,尤其在GIS(地理信息系统)应用中更是如此。OpenScales是一个强大的开源库,它提供了丰富的地图渲染和交互功能,使得开发者...
在GIS开发领域,OpenScales是一个强大的开源库,主要用于创建基于Adobe Flex的地理信息系统应用程序。OpenScales提供了与OGC(开放地理空间联盟)标准服务的集成,包括WFS(Web Feature Service)、WMS(Web Map ...
而OpenScales则是一个专门针对地图和地理信息数据可视化的库,它允许开发者在Flex应用中轻松地集成地图功能,包括各种地图类型和数据表示方法。 标题提到的"flex openscales 绘制热度图"是指使用OpenScales库在Flex...