[转载]FGMap学习之-添加自己的地图数据
- Flash
- 2011-03-17
- 150热度
- 0评论
[转载]FGMap学习之-添加自己的地图数据 - liongis - 博客园.
今天进入我们的正题,如何来加载自己的地图数据,这里使用的数据可以自己生成,也可以从网上下载,放到本机或自己的服务器上,只要修改对应的路径就行。
仍然在上次的例子上来增加:
在项目的src目录上点击右键,选择"新建ActionScript类",输入包名、类名及超类:

点击“Finish”后,会在程序中新建出一个MyTileLayer.as的文件,将下面的代码贴入文件中:
[code]
package com.examples
{
import com.fgmap.maps.Color;
import com.fgmap.maps.Copyright;
import com.fgmap.maps.CopyrightCollection;
import com.fgmap.maps.LatLng;
import com.fgmap.maps.LatLngBounds;
import com.fgmap.maps.TileLayerBase;
import com.fgmap.maps.interfaces.ICopyrightCollection;
import com.fgmap.maps.interfaces.IMap;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.*;
import flash.geom.Point;
import flash.net.URLRequest;
public class MyTileLayer extends TileLayerBase
{
private var mapMinZoom:int = 11; //最小显示等级
private var mapMaxZoom:int = 13; //最大显示等级
public function MyTileLayer(tileSize:Number){
var copyrightCollection:CopyrightCollection = new CopyrightCollection();
super(copyrightCollection, mapMinZoom, mapMaxZoom, 1); //调用父类的方法
//创建一个自己的版权说明
copyrightCollection.addCopyright(
new Copyright("MyCopyright",
new LatLngBounds(new LatLng(-180, -90),
new LatLng(180, 90)), 0,
"这是我自己的版本说明"));
}
//覆盖加载地图数据的方法,这个很重要,地图数据从这里读取
override public function loadTile(tilePos:Point, zoom:Number):DisplayObject {
var testLoader:Loader = new Loader();
var ymax:int = 1 << zoom;
var y:int = ymax - tilePos.y - 1;
var urlRequest:URLRequest;
if ((zoom < mapMinZoom) || (zoom > mapMaxZoom)) {
urlRequest = new URLRequest("assets/tiles/nomap.png"); //没有地图时显示的内容
}else{
urlRequest = new URLRequest(
"assets/tiles/" + zoom+"/"+ tilePos.x + "/" + y +".png"); //地图存放的路径,现在是本地的,也可以是服务器的地址。
}
testLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
testLoader.load(urlRequest);
return testLoader;
}
//出错处理
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}
[/code]
在FGMapDemo.mxml文件使用我们刚才写的类:
[xml]
[/xml]
完成后,我们把程序运行起来,结果是:

这样就加上我们自己的地图了。
到这一步,我们的程序是写完了,不过我们还需要一些准备:
地图图片,我是放在"assets/tiles"目录下,这些数据是用我的切图工具生成出来的。同学们可以换成其它的数据试试,记得要改获取图片地址的方法哦!
别外,我们的FGMap库文件也换了一下,现在升级到1.01了,而且是放到lib目录下。
完整的示例程序请点击这里下载:http://files.cnblogs.com/liongis/FGMapDemo2.rar
如有问题请联系我:
Mail:liongis@163.com
QQ:1366940902