<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_liongis</title><subtitle type="text">关注WebGIS,Flex等技术....</subtitle><id>http://feed.cnblogs.com/blog/u/69934/rss</id><updated>2012-05-07T05:27:22Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/69934/rss"/><entry><id>http://www.cnblogs.com/liongis/archive/2012/04/27/2474194.html</id><title type="text">离线地图制作工具</title><summary type="text">地图下载工具和离线版地图的使用说明。最近有很多朋友都在问我地图下载的工具，其实这样的工具网上已经很多了，搜一下就能找得到，基本原理都是一样：1.选择一定的地图范围。2.选择需要下载的地图源。3.选择需要下载的等级。4.开始下载。只是每一个软件都会有自己的特点，为了满足不同的需求而以。其实地图下载下来后，最主要的目的还是要应用起来，这就需要结合离线地图的平台.</summary><published>2012-04-27T13:40:00Z</published><updated>2012-04-27T13:40:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/04/27/2474194.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/04/27/2474194.html"/><content type="html">&lt;p&gt;最近有很多朋友都在问我地图下载的工具，其实这样的工具网上已经很多了，搜一下就能找得到，基本原理都是一样：&lt;/p&gt;&lt;p&gt;1.选择一定的地图范围。&lt;/p&gt;&lt;p&gt;2.选择需要下载的地图源。&lt;/p&gt;&lt;p&gt;3.选择需要下载的等级。&lt;/p&gt;&lt;p&gt;4.开始下载。&lt;/p&gt;&lt;p&gt;只是每一个软件都会有自己的特点，为了满足不同的需求而以。其实地图下载下来后，最主要的目的还是要应用起来，这就需要结合离线地图的平台.&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/liongis/GoogleMapAPI3.8.6.zip"&gt;Google Map API V3.8.6&lt;/a&gt;&amp;nbsp;的版本我在之前就发布过，有需要的请自己下载。今天更详细的跟大家讲一下这两个步骤如何结合起来。&lt;/p&gt;&lt;p&gt;1.地图的下载&lt;/p&gt;&lt;p&gt;新制作了一个地图下载的工具，界面如下，操作其实已经很简单了，看图就能明白：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012042721280511.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;目前地图下载工具可以支持Mapabc、谷歌矢量图、谷歌影像图三种图进行下载，如果需要更多的图源，可以跟我联系。&lt;/p&gt;&lt;p&gt;下载完成后，在应用程序的目录下会生成一个maptile目录，这个目录是存放刚才下载的地图数据。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.加载本地数据&lt;/p&gt;&lt;p&gt;地图数据我们已经下载下来了，我们使用离线版的Google Map API对图片进行加载：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;DOCTYPE html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="viewport"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="width=device-width, initial-scale=1.0, user-scalable=no"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;http-equiv&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="content-type"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/html; charset=UTF-8"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;link &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="mapfiles/css/default.css"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; rel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="stylesheet"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/css"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;Google Maps JavaScript API v3 Example: Map Simple&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"&amp;gt;&amp;lt;/script&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="mapapi3.8.6.js"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;   &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LocalMapType() {} &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;   &lt;br/&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.tileSize &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Size(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;256&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;256&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.maxZoom &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;19&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;   &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;地图显示最大级别&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.minZoom &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;1&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;地图显示最小级别&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.name &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;本地数据&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.alt &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;显示本地地图数据&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.getTile &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;(coord, zoom, ownerDocument) {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; img &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ownerDocument.createElement(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;img&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.style.width &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.tileSize.width &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;px&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.style.height &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.tileSize.height &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;px&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;地图存放路径&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;谷歌矢量图 maptile/googlemaps/roadmap&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;谷歌影像图 maptile/googlemaps/roadmap&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;MapABC地图 maptile/mapabc/&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; strURL &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;maptile/mapabc/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      strURL &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; zoom &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; coord.x &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;/&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; coord.y &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.PNG&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.src &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; strURL;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;       &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; img;&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  };&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;   &lt;br/&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;   &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; localMapType &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LocalMapType();&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;    &lt;br/&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;   &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; initialize() {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; myLatlng &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.LatLng(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;39.900827854566344&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;116.38339402421877&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; myOptions &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      center: myLatlng,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      zoom: &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;4&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      streetViewControl: &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      mapTypeControlOptions: {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            mapTypeIds: [&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            google.maps.MapTypeId.ROADMAP,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            google.maps.MapTypeId.HYBRID,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            google.maps.MapTypeId.SATELLITE,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            google.maps.MapTypeId.TERRAIN,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;             &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;locaMap&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ]  &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;定义地图类型&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    };&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; map &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Map(document.getElementById(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;map_canvas&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;), myOptions);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt;     &lt;br/&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    map.mapTypes.set(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;locaMap&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, localMapType);   &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;绑定本地地图类型&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    map.setMapTypeId(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;locaMap&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);    &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;指定显示本地地图&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;     &lt;br/&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;var markerOptions = new google.maps.MarkerOptions({draggable:true});&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; marker &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Marker({&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        position: myLatlng, &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        map: map,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        draggable:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;true&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;61&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        title:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;Hello World!&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;62&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;63&lt;/span&gt;     &lt;br/&gt;&lt;span style="color: #008080;"&gt;64&lt;/span&gt;     &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; infowindow &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.InfoWindow(&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;65&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        { content:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;latlng:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; marker.getPosition().toString(),&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;66&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;          size: &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Size(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;50&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;50&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;)&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;67&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        });&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;68&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;69&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    google.maps.event.addListener(marker, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;click&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;() {&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;70&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      infowindow.setContent(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;latlng:&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; marker.getPosition().toUrlValue(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;6&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;));&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;71&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      infowindow.open(map,marker);&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;72&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    }); &lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;73&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  }&lt;br/&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;74&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;75&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;76&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;onload&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="initialize()"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;77&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="map_canvas"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;78&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br/&gt;&lt;span style="color: #008080;"&gt;79&lt;/span&gt; &lt;br/&gt;&lt;span style="color: #008080;"&gt;80&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;示例中是加载本地Mapabc的地图，如果需要其它的地图，只需要把路径改一下即可，如果需要布置到服务器的话，改成服务器地址就行。&lt;/p&gt;&lt;p&gt;地图下载工具和离线版本我都打成一个包，并附带了一部分下载的示例数据，解压后直接打开map-simple.html文件，你应该可以看到本地的地图数据，祝你成功！&lt;/p&gt;&lt;p&gt;地图下载目前只是一个测试版，后续可能还会修改，如果你有什么好的想法，也请告诉我。&lt;/p&gt;&lt;p&gt;本程序只用于学习用。&lt;/p&gt;&lt;p&gt;&lt;a href="http://files.cnblogs.com/liongis/MapDown.zip"&gt;离线地图制作工具下载&amp;nbsp;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2474194.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/04/27/2474194.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2012/04/26/2472097.html</id><title type="text">[转]flex自定义组件分类 在组件面板里放到不同的文件夹下</title><summary type="text">怎么给flex自定义组件分组呢？  自己写的组件全部被放在组件面板的自定义文件夹下了。</summary><published>2012-04-26T14:00:00Z</published><updated>2012-04-26T14:00:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/04/26/2472097.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/04/26/2472097.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.ccflash.com/Flex__2011_03__4269.html"&gt;http://www.ccflash.com/Flex__2011_03__4269.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;前几天有人问到，怎么给flex自定义组件分组呢？&amp;nbsp; &amp;nbsp;自己写的组件全部被放在组件面板的&lt;strong&gt;自定义&lt;/strong&gt;文件夹下了。&lt;br /&gt;&lt;br /&gt;这几天我也一直在想这个问题，最后终于找到办法了！&lt;br /&gt;&lt;br /&gt;先看一下效果图：&lt;br /&gt;&lt;img src="http://www.ccflash.com/UploadPic/2011-3-1/2011312211147634.png" alt="flex自定义组件分类 在组件面板里放到不同的文件夹下-1" border="0" /&gt;&lt;br /&gt;这里我已经把我的自定义组件分别放到了两个文件夹里面。&amp;nbsp;&amp;nbsp;是不是大家想要的效果呢...&lt;br /&gt;&lt;br /&gt;步骤一：&lt;br /&gt;新建一个文件我把它命名为&lt;span style="color: #8b0000;"&gt;design.xml&lt;/span&gt;&lt;/p&gt;&lt;table style="width: 100%;" cellspacing="1" cellpadding="5"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="background-color: #f6f6f6; border: #cccccc 1px solid;" width="100%"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;design version="2"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;categories&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;category id="Miao1" label="Miao容器"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;category id="Miao2" label="Miao控件"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/categories&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;components&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;component name="com.miao.container.EWindow" category="Miao1"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;component name="com.miao.control.ArrowToolTip" category="Miao2"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;component name="com.miao.control.TimeInput" category="Miao2"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;lt;component name="com.miao.control.TimeStepper" category="Miao2"/&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/components&amp;gt;&lt;br /&gt;&amp;lt;/design&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&amp;lt;category id="Miao1" label="Miao容器"/&amp;gt;表示的是自定义组件的文件夹分类，label就是在组件面板里的文件夹显示名称，&lt;br /&gt;id是引用，在 &amp;lt;component name="com.miao.container.EWindow" category="Miao1"/&amp;gt;里要用到的。&lt;br /&gt;component 表示的是要显示的组件。category对应上面的分类，name就是组件的路径了。&lt;br /&gt;假如你在库里写了许多组件，只想对外显示几个，就可以这样设置了。&lt;br /&gt;&lt;br /&gt;步骤二：&lt;br /&gt;把这个design.xml文件放到你的库项目的根目录下(src文件夹里，放其它地方行不行我没试过)。&lt;br /&gt;&lt;img src="http://www.ccflash.com/UploadPic/2011-3-1/2011312211147911.png" alt="flex自定义组件分类 在组件面板里放到不同的文件夹下-2" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;步骤三：&lt;br /&gt;在库项目属性面板里找到资源选项卡，把刚才的xml文件勾选上。&lt;br /&gt;&lt;img src="http://www.ccflash.com/UploadPic/2011-3-1/2011312211148262.png" alt="flex自定义组件分类 在组件面板里放到不同的文件夹下-3" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;做完这三部已经大功告成了。&lt;br /&gt;接下来就是编译下库项目，然后在引用了这个库项目的项目里，转到设计视图，看看组件面板里，你的组件是不是已经分类了？&lt;br /&gt;如果没有效果的话，就把库项目和引用库项目的项目清理下重新编译就可以了。&lt;br /&gt;&lt;br /&gt;其实还可以更改命名空间哦！&lt;br /&gt;就像这样子&lt;img src="http://www.ccflash.com/UploadPic/2011-3-1/2011312211148573.png" alt="flex自定义组件分类 在组件面板里放到不同的文件夹下-4" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;具体怎么改命名空间 或者 有什么不明白的 可以参考这里&lt;br /&gt;&lt;a href="http://help.adobe.com/en_US/Flex/4.0/flashbuilder_extensibility/DesignViewExtKitReadme.htm" target="_blank"&gt;http://help.adobe.com/en_US/Flex/4.0/flashbuilder_extensibility/DesignViewExtKitReadme.htm&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2472097.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/04/26/2472097.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2012/04/12/2444218.html</id><title type="text">GoogleMapAPIV3.8.6离线包下载</title><summary type="text">之前发布的GoogleMapAPIV3离线包有朋友反映缺少文件，运行的时候，有些功能不能会出错，所以重新制作了一个离线包。这个离线包是最新的3.8版本。有需要的朋友请更新一下。</summary><published>2012-04-12T08:31:00Z</published><updated>2012-04-12T08:31:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/04/12/2444218.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/04/12/2444218.html"/><content type="html">&lt;p&gt;之前发布的GoogleMapAPIV3离线包有朋友反映缺少文件，运行的时候，有些功能不能会出错，所以重新制作了一个离线包。这个离线包是最新的3.8版本，更新内容请查看&lt;a href="http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog"&gt;http://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3.8&lt;/strong&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;February 15, 2012&lt;/p&gt;&lt;p&gt;Fixed:&lt;/p&gt;&lt;ul style="widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; padding-left: 25px; font: 13px arial, sans-serif; max-width: 62em; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"&gt;&lt;li style="margin-bottom: 0.3em;"&gt;Regression: Scaled markers rendered incorrectly with invalid "size" parameter (&lt;a class="closed_ref" style="color: #0000cc; text-decoration: line-through;" title=" MarkerImages are not scaled anymore" href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=3908"&gt;&amp;nbsp;Issue 3908&amp;nbsp;&lt;/a&gt;)&lt;/li&gt;&lt;li style="margin-bottom: 0.3em;"&gt;Map stuck in editing mode when setEditable(false) called while user is dragging control point (&lt;a class="closed_ref" style="color: #0000cc; text-decoration: line-through;" title="Bug: Circle.setEditable" href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=3842"&gt;&amp;nbsp;Issue 3842&amp;nbsp;&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Noticeable changes:&lt;/p&gt;&lt;ul style="widows: 2; text-transform: none; background-color: #ffffff; text-indent: 0px; padding-left: 25px; font: 13px arial, sans-serif; max-width: 62em; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;"&gt;&lt;li style="margin-bottom: 0.3em;"&gt;Cross-fade between Street View panoramas.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;GoogleMapAPIV3.8.6离线包的下载地址是：&lt;a href="http://files.cnblogs.com/liongis/GoogleMapAPI3.8.6.zip"&gt;http://files.cnblogs.com/liongis/GoogleMapAPI3.8.6.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这个只是API的离线版本，不包含地图数据，需要的朋友可自行下载，在程序中加载进来就可以，可以参见我写的加载本地数据的示例。&lt;/p&gt;&lt;p&gt;其实每次制作离线版都是一件很麻烦的事情，需要修改很多的内容。&lt;/p&gt;&lt;p&gt;如果有一个工具可以直接下载并修改就很好了，现在已经完成GoogleMapAPI离线包制作工具的雏形，有以下功能：&lt;/p&gt;&lt;p&gt;1.获取最新的版本信息。&lt;/p&gt;&lt;p&gt;2.制作最新版本的离线包。&lt;/p&gt;&lt;p&gt;3.可制作指定版本的离线包。&lt;/p&gt;&lt;p&gt;4.支持制作不同语言的离线包。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;还有更好的想法，可以一起讨论。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2444218.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/04/12/2444218.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2012/03/26/2417456.html</id><title type="text">FGMap加载天地图地图数据</title><summary type="text">FGMap默认支持Web墨卡托投影后的瓦片地图数据，也就是现在我们看到的Google Map、Bing Map、百度地图这样的瓦片数据。这偏文章是介绍如何加载“经纬度直投”的天地图数据。</summary><published>2012-03-26T02:11:00Z</published><updated>2012-03-26T02:11:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/03/26/2417456.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/03/26/2417456.html"/><content type="html">&lt;p&gt;FGMap默认支持Web墨卡托投影后的瓦片地图数据，也就是现在我们看到的Google Map、Bing Map、百度地图这样的瓦片数据，只要解析所对应的请求地址路径就可以，这个方法在之前的文章中介绍过。今天我们加载一个&amp;ldquo;经纬度直投&amp;rdquo;的地图数据类型－－天地图数据，因为投影的方式不一样，所以加载的方式可能会不一样些。&amp;ldquo;经纬度等间隔直投&amp;rdquo;和&amp;ldquo;Web墨卡托&amp;rdquo;之间的区别大家可以参考一下&lt;a href="http://blog.3snews.net/html/88/47188-28181.html"&gt;《天地图-地图投影技术剖析与思考》&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;需要加载不同投影下的地图数据，我们需要自己来定义一个投影计算的方式，可以继承IProjection类，IProjection中有两个关键的方法:&lt;/p&gt;&lt;p&gt;fromPixelToLatLng:将像素点转换成对应的经纬度坐标。&lt;/p&gt;&lt;p&gt;fromLatLngToPixel:将经纬度坐标转换成对应的像素。&lt;/p&gt;&lt;p&gt;因为天地图使用的是&amp;ldquo;经纬度直投&amp;rdquo;的方式进行投影，所以换算方式比较简单：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fromPixelToLatLng(pixel:Point, zoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;, nowrap:&lt;span style="color: #0000ff;"&gt;Boolean&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;) : LatLng&lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;             x = pixel.x / (Math.pow(2,zoom) * titeSize) * 360 - 180;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;             y = 90 - pixel.y / (Math.pow(2,zoom-1) * titeSize) * 180;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; latlng:LatLng  = new LatLng(y, x, nowrap);&lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; latlng;&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fromLatLngToPixel(latLng:LatLng, zoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;) : Point&lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; point:Point = new Point(0,0);&lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;             latLng = new LatLng(latLng.lat(),latLng.lng());&lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;             point.x = (latLng.lng() + 180) / 360 * (Math.pow(2,zoom) * titeSize);&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;             point.y = (90 - latLng.lat()) / 180 * (Math.pow(2,zoom-1) * titeSize);&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; point;&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;         }&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;大家也可以参考一下这篇文章：&lt;a href="http://lt.cjdby.net/thread-1003128-1-1.html"&gt;http://lt.cjdby.net/thread-1003128-1-1.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;有了这个方法后，我们可以自己定义一个投影，具体代码如下：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('9e2b0b59-735b-4fbc-86d7-3287b23438a0')"&gt;&lt;div id="cnblogs_code_open_9e2b0b59-735b-4fbc-86d7-3287b23438a0" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt; package com.fgmap.expand.core&lt;br /&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt; {&lt;br /&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.expand.*;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.LatLng;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.interfaces.IProjection;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;     &lt;br /&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.geom.Point;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;     &lt;br /&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; TiandituProjection &lt;span style="color: #0000ff;"&gt;implements&lt;/span&gt; IProjection&lt;br /&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;     {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; _wrapper:&lt;span style="color: #0000ff;"&gt;Object&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; pixelRange:Array;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; pixelsPerLonDegree:Array;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; pixelOrigo:Array;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; pixelsPerLonRadian:Array;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; const MERCATOR_ZOOM_LEVEL_ZERO_RANGE:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 256;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; titeSize:int = 256;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; TiandituProjection(zoom:int)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; mapSize:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = MERCATOR_ZOOM_LEVEL_ZERO_RANGE;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; i:int = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; mapOrigo:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;             pixelsPerLonDegree = [];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt;             pixelsPerLonRadian = [];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;             pixelOrigo = [];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;             pixelRange = [];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; (i &amp;lt; zoom)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;                 mapOrigo = mapSize / 2;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;                 pixelsPerLonDegree.push(mapSize / 360);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;                 pixelsPerLonRadian.push(mapSize / (2 * Math.PI));&lt;br /&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;                 pixelOrigo.push(new Point(mapOrigo, mapOrigo));&lt;br /&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;                 pixelRange.push(mapSize);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;                 mapSize = mapSize * 2;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;                 i++;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;             }            &lt;br /&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fromPixelToLatLng(pixel:Point, zoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;, nowrap:&lt;span style="color: #0000ff;"&gt;Boolean&lt;/span&gt; = &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;) : LatLng&lt;br /&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;             x = pixel.x / (Math.pow(2,zoom) * titeSize) * 360 - 180;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt;             y = 90 - pixel.y / (Math.pow(2,zoom-1) * titeSize) * 180;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; latlng:LatLng  = new LatLng(y, x, nowrap);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; latlng;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; fromLatLngToPixel(latLng:LatLng, zoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;) : Point&lt;br /&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; point:Point = new Point(0,0);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt;             latLng = new LatLng(latLng.lat(),latLng.lng());&lt;br /&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt;             point.x = (latLng.lng() + 180) / 360 * (Math.pow(2,zoom) * titeSize);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;             point.y = (90 - latLng.lat()) / 180 * (Math.pow(2,zoom-1) * titeSize);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; point;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt; interfaceChain() : Array&lt;br /&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; ["IProjection"];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt; wrapper() : &lt;span style="color: #0000ff;"&gt;Object&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; this._wrapper;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; tileCheckRange(param1:Point, param2:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;, param3:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;) : &lt;span style="color: #0000ff;"&gt;Boolean&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = 0;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;             x = pixelRange[param2];&lt;br /&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (param1.y &amp;lt; 0 || param1.y * param3 &amp;gt;= x)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (param1.x &amp;lt; 0 || param1.x * param3 &amp;gt;= x)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                 y = Math.floor(x / param3);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt;                 param1.x = param1.x % y;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (param1.x &amp;lt; 0)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt;                 {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt;                     param1.x = param1.x + y;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; getWrapWidth(param1:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;) : &lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; pixelRange[param1];&lt;br /&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt; wrapper(param1:&lt;span style="color: #0000ff;"&gt;Object&lt;/span&gt;) : void&lt;br /&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;             this._wrapper = param1;&lt;br /&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt; }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;当然，这里会做一些处理，因为天地图的图数据分为&amp;ldquo;线划地图&amp;rdquo;和&amp;ldquo;影像地图&amp;rdquo;两种，而每一类中，又分为底图和标注，所以我们需要在程序中加以区分，天地图资源的分类可以参见：&lt;a href="http://www.tianditu.com/guide/resource.jsp"&gt;http://www.tianditu.com/guide/resource.jsp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;有了这些信息后，，我们在自定义一个地图类型对数据进行处理：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('3de5e9f1-bd47-4fe0-9c32-4e8384fa3684')"&gt;&lt;div id="cnblogs_code_open_3de5e9f1-bd47-4fe0-9c32-4e8384fa3684" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt; package com.fgmap.expand.core &lt;br /&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt; { &lt;br /&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.Copyright;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.CopyrightCollection;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.LatLng;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.LatLngBounds;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.TileLayerBase;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.interfaces.ICopyrightCollection;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;     &lt;br /&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.display.DisplayObject;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.display.Loader;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.events.IOErrorEvent;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.geom.Point;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; flash.net.URLRequest; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt;     &lt;br /&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;class&lt;/span&gt; TiandituTileLayer &lt;span style="color: #0000ff;"&gt;extends&lt;/span&gt; TileLayerBase &lt;br /&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt;     { &lt;br /&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; const EMAP:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "EMap";&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;矢量地图&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; const ANNO:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "Anno";&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;矢量标注&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; const IMGANNO:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "ImgAnno";&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;影像标注&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;static&lt;/span&gt; const IMG:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "Img";&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;影像地图&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; mapMinZoom:int = 1; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;最小显示等级 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; mapMaxZoom:int = 18;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;最大显示等级 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; _mapType:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = EMAP;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; TiandituTileLayer(tileSize:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;,mapMinZoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;,mapMaxZoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;,alpha:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;) &lt;br /&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;         { &lt;br /&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; copyrightCollection:CopyrightCollection = new CopyrightCollection(); &lt;br /&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建一个自己的版权说明 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;             copyrightCollection.addCopyright( &lt;br /&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;                 new Copyright("TiandituData" + MapType, &lt;br /&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;                     new LatLngBounds(new LatLng(-180, -90), &lt;br /&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;                         new LatLng(180, 90)),  0,&lt;br /&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;                     "天地图数据",18)); &lt;br /&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;super&lt;/span&gt;(copyrightCollection, mapMinZoom, mapMaxZoom, alpha);  &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;调用父类的方法 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;get&lt;/span&gt; MapType():&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; _mapType;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;set&lt;/span&gt; MapType(value:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt;):void&lt;br /&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt;         {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;             _mapType = value;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;         }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;         &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;覆盖加载地图数据的方法，这个很重要，地图数据从这里读取 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt;         override &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; loadTile(tilePos:Point, zoom:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt;):DisplayObject { &lt;br /&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; testLoader:Loader = new Loader(); &lt;br /&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; z:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = Math.pow(2,zoom - 1) - Math.pow(2,zoom - 2) - 1;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; x:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = tilePos.x;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt;             z = Math.pow(2,zoom - 2);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; y:&lt;span style="color: #0000ff;"&gt;Number&lt;/span&gt; = tilePos.y;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; layerName:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; strURL:&lt;span style="color: #0000ff;"&gt;String&lt;/span&gt; = "";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;switch&lt;/span&gt;(_mapType){&lt;br /&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; EMAP:&lt;br /&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;lt;= 10) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;                         layerName = "A0512_EMap";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom == 11 || zoom == 12) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt;                         layerName = "B0627_EMap1112";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;gt;= 13 &amp;amp;&amp;amp; zoom &amp;lt;= 18) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;                         layerName = "siwei0608";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; IMG:&lt;br /&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;lt;= 10) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;                         layerName = "sbsm0210";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom == 11) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt;                         layerName = "e11";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom == 12) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt;                         layerName = "e12";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom == 13) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt;                         layerName = "e13";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom == 14) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt;                         layerName = "eastdawnall";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;gt;= 15 &amp;amp;&amp;amp; zoom &amp;lt;= 18) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;                         layerName = "sbsm1518";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; ANNO:&lt;br /&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;lt;= 10) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt;                         layerName = "AB0512_Anno";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt;                         strURL = "http://www.tianditu.com/js/GeoSurfJSAPI/img/blank.gif";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;case&lt;/span&gt; IMGANNO:&lt;br /&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; (zoom &amp;lt;= 10) {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt;                         layerName = "A0610_ImgAnno";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(zoom &amp;gt;= 11 &amp;amp;&amp;amp; zoom &amp;lt;= 14){&lt;br /&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt;                         layerName = "B0530_eImgAnno";&lt;br /&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(zoom &amp;gt; 14 &amp;amp;&amp;amp; zoom &amp;lt; 19){&lt;br /&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;                         layerName = "siweiAnno68";&lt;br /&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;                     } &lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; {&lt;br /&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;                         strURL = "http://www.tianditu.com/js/GeoSurfJSAPI/img/blank.gif";&lt;br /&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;break&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; num:int = Math.random()* 3;&lt;br /&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(strURL == ""){&lt;br /&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;                 strURL = encodeURI("http://tile" + num + ".tianditu.com/DataServer?" +&lt;br /&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt;                     "T=" + layerName +  &lt;br /&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;                     "&amp;amp;X=" + x + &lt;br /&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt;                     "&amp;amp;Y=" + y + &lt;br /&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;                     "&amp;amp;L=" + zoom +&lt;br /&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;                     "&amp;amp;d=2009-10-22T20:25:15&amp;amp;cd=9999-12-31T00:00:00");&lt;br /&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; urlRequest:URLRequest; &lt;br /&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;             urlRequest =  new URLRequest(strURL);   &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;没有地图时显示的内容 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;             testLoader.load(urlRequest); &lt;br /&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;             testLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); &lt;br /&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; testLoader; &lt;br /&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;         }        &lt;br /&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;         &lt;br /&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;         &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;出错处理 &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;         &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; ioErrorHandler(event:IOErrorEvent):void { &lt;br /&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;             trace("ioErrorHandler: " + event); &lt;br /&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;         } &lt;br /&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;     } &lt;br /&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt; }&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;最后，我们将&amp;ldquo;线划地图&amp;rdquo;和&amp;ldquo;影像地图&amp;rdquo;加载到我们的地图中来：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('4a2cc35f-4aa9-433b-ac45-89cc2ea5dd29')"&gt;&lt;div id="cnblogs_code_open_4a2cc35f-4aa9-433b-ac45-89cc2ea5dd29" class="cnblogs_code_hide"&gt;&lt;span style="color: #008080;"&gt;  1&lt;/span&gt; &amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  2&lt;/span&gt; &amp;lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"&lt;br /&gt;&lt;span style="color: #008080;"&gt;  3&lt;/span&gt;                xmlns:s="library://ns.adobe.com/flex/spark"&lt;br /&gt;&lt;span style="color: #008080;"&gt;  4&lt;/span&gt;                xmlns:mx="library://ns.adobe.com/flex/mx"&lt;br /&gt;&lt;span style="color: #008080;"&gt;  5&lt;/span&gt;                xmlns:maps="com.fgmap.maps.*"&lt;br /&gt;&lt;span style="color: #008080;"&gt;  6&lt;/span&gt;                minWidth="955" minHeight="600"&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  7&lt;/span&gt;     &amp;lt;fx:Declarations&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  8&lt;/span&gt;         &amp;lt;!-- 将非可视元素（例如服务、值对象）放在此处 --&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;  9&lt;/span&gt;     &amp;lt;/fx:Declarations&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 10&lt;/span&gt;     &amp;lt;s:Panel width="800" height="600" title="FGMap加载天地图数据"&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 11&lt;/span&gt;         &amp;lt;maps:Map id="map" width="100%" height="100%" mapevent_mapready="onMapreadyHandler(event)"/&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 12&lt;/span&gt;     &amp;lt;/s:Panel&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 13&lt;/span&gt;     &lt;br /&gt;&lt;span style="color: #008080;"&gt; 14&lt;/span&gt;     &amp;lt;fx:Script&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 15&lt;/span&gt;         &amp;lt;![CDATA[&lt;br /&gt;&lt;span style="color: #008080;"&gt; 16&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.expand.core.*;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 17&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.*;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 18&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.MapMouseEvent;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 19&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.controls.MapTypeControl;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 20&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.controls.NavigationControl;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 21&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.controls.OverviewMapControl;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 22&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.controls.ScaleControl;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 23&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.interfaces.IMapType;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 24&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;import&lt;/span&gt; com.fgmap.maps.overlays.*;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 25&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 26&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; marker:Marker;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 27&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 28&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; centreLatlng:LatLng = new LatLng(39.90509127978099,116.39769769279956818);&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;人民英雄纪念碑。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 29&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 30&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tiandituAnno:TiandituTileLayer = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 31&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; TiandituAnno:TileLayerOverlay = &lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 32&lt;/span&gt;             &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;地图加载完成后执行的方法&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 33&lt;/span&gt;             protected &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; onMapreadyHandler(event:MapEvent):void&lt;br /&gt;&lt;span style="color: #008080;"&gt; 34&lt;/span&gt;             {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 35&lt;/span&gt;                 map.enableContinuousZoom();    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;启用连续平滑缩放。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 36&lt;/span&gt;                 map.enableScrollWheelZoom();    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;启用使用鼠标滚轮缩放。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 37&lt;/span&gt;                 map.addControl(new MapTypeControl());    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;供用户在地图类型之间进行切换的按钮。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 38&lt;/span&gt;                 map.addControl(new NavigationControl());&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;供用户更改地图的各项导航参数，包括缩放级别、中心位置和空间方位角。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 39&lt;/span&gt;                 map.addControl(new ScaleControl());    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;比例控件是用于指示当前地图的分辨率和缩放级别的可视指示器。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 40&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 41&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; normalMapType:IMapType = MapType.NORMAL_MAP_TYPE;    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义一个地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 42&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tileLayers:Array = new Array();&lt;br /&gt;&lt;span style="color: #008080;"&gt; 43&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 44&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;天地图矢量&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 45&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 46&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tdtemaplTileLayer:TiandituTileLayer = new TiandituTileLayer(normalMapType.getTileSize(),1,18,1)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 47&lt;/span&gt;                 tdtemaplTileLayer.MapType = TiandituTileLayer.EMAP;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 48&lt;/span&gt;                 tileLayers.push(tdtemaplTileLayer); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 49&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; TdtEmapMapType:IMapType = new MapType(tileLayers,new TiandituProjection(18),"矢量");&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建自己的地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 50&lt;/span&gt;                 map.addMapType(TdtEmapMapType);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;增加到地图上&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 51&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 52&lt;/span&gt;                 tiandituAnno = new TiandituTileLayer(normalMapType.getTileSize(),1,10,1)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 53&lt;/span&gt;                 tiandituAnno.MapType = TiandituTileLayer.ANNO;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 54&lt;/span&gt;                 TiandituAnno = new TileLayerOverlay(tiandituAnno,256,new TiandituProjection(18));&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建自己的地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 55&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;tileLayers.push(tiandituAnno);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 56&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;var TdtAnnoMapType:IMapType = new MapType(tileLayers,new TiandituProjection(18),"标注");//创建自己的地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 57&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;map.addMapType(TdtAnnoMapType);    //增加到地图上&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 58&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 59&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;天地图影像&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 60&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; tdtimgTileLayer:TiandituTileLayer = new TiandituTileLayer(normalMapType.getTileSize(),1,18,1)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 61&lt;/span&gt;                 tdtimgTileLayer.MapType = TiandituTileLayer.IMG;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 62&lt;/span&gt;                 tileLayers = new Array();&lt;br /&gt;&lt;span style="color: #008080;"&gt; 63&lt;/span&gt;                 tileLayers.push(tdtimgTileLayer); &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 64&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; TdtImgMapType:IMapType = new MapType(tileLayers,new TiandituProjection(18),"影像");&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;创建自己的地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 65&lt;/span&gt;                 map.addMapType(TdtImgMapType);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;增加到地图上&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 66&lt;/span&gt;                                     &lt;br /&gt;&lt;span style="color: #008080;"&gt; 67&lt;/span&gt;                 map.setMapType(TdtEmapMapType);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置自己的地图可见&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 68&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 69&lt;/span&gt;                 map.addEventListener(MapEvent.MAPTYPE_CHANGED,onMapTypeChanged);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 70&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 71&lt;/span&gt;                 map.addOverlay(TiandituAnno);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加载标注覆盖层&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 72&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt; 73&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;移除原来的地图类型&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 74&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;                for(var i:int=0;i &amp;lt; MapType.DEFAULT_MAP_TYPES.length;i++){&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 75&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;                    map.removeMapType(MapType.DEFAULT_MAP_TYPES[i]);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 76&lt;/span&gt; &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;                }&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 77&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 78&lt;/span&gt;                 map.setCenter(centreLatlng,5);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置地图的中心点。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 79&lt;/span&gt;                 marker = new Marker(centreLatlng);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;建立一个标注。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 80&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;map.addOverlay(marker);        //在地图上显示此标注。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 81&lt;/span&gt;                 BindMarker(marker);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 82&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 83&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt; 84&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; onMapTypeChanged(e:MapEvent):void {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 85&lt;/span&gt;                 map.removeOverlay(TiandituAnno);&lt;br /&gt;&lt;span style="color: #008080;"&gt; 86&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(map.getCurrentMapType().getName() == "矢量"){&lt;br /&gt;&lt;span style="color: #008080;"&gt; 87&lt;/span&gt;                     tiandituAnno = new TiandituTileLayer(256,1,10,1)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 88&lt;/span&gt;                     tiandituAnno.MapType = TiandituTileLayer.ANNO;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 89&lt;/span&gt;                     TiandituAnno = new TileLayerOverlay(tiandituAnno,256,new TiandituProjection(18));&lt;br /&gt;&lt;span style="color: #008080;"&gt; 90&lt;/span&gt;                     map.addOverlay(TiandituAnno);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加载标注覆盖层&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 91&lt;/span&gt;                 }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(map.getCurrentMapType().getName() == "影像"){&lt;br /&gt;&lt;span style="color: #008080;"&gt; 92&lt;/span&gt;                     tiandituAnno = new TiandituTileLayer(256,1,18,1)&lt;br /&gt;&lt;span style="color: #008080;"&gt; 93&lt;/span&gt;                     tiandituAnno.MapType = TiandituTileLayer.IMGANNO;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 94&lt;/span&gt;                     TiandituAnno = new TileLayerOverlay(tiandituAnno,256,new TiandituProjection(18));&lt;br /&gt;&lt;span style="color: #008080;"&gt; 95&lt;/span&gt;                     map.addOverlay(TiandituAnno);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加载标注覆盖层&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 96&lt;/span&gt;                 }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt; 97&lt;/span&gt;                     map.removeOverlay(TiandituAnno);    &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;移除标注覆盖层&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 98&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt; 99&lt;/span&gt;             }&lt;br /&gt;&lt;span style="color: #008080;"&gt;100&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #008080;"&gt;101&lt;/span&gt;             &lt;span style="color: #0000ff;"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt; BindMarker(marker:Marker):void {&lt;br /&gt;&lt;span style="color: #008080;"&gt;102&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; markerOptions:MarkerOptions = new MarkerOptions();&lt;br /&gt;&lt;span style="color: #008080;"&gt;103&lt;/span&gt;                 markerOptions.draggable = &lt;span style="color: #0000ff;"&gt;true&lt;/span&gt;;&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置标注可以拖动&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;104&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt;105&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;定义一个标注&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;106&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;var marker:Marker = new Marker(map.getCenter(),markerOptions);&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;107&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt;108&lt;/span&gt;                 marker.setOptions(markerOptions);&lt;br /&gt;&lt;span style="color: #008080;"&gt;109&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt;110&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;var&lt;/span&gt; infoOptions:InfoWindowOptions = new InfoWindowOptions();&lt;br /&gt;&lt;span style="color: #008080;"&gt;111&lt;/span&gt;                 infoOptions.title = "我的坐标是";&lt;br /&gt;&lt;span style="color: #008080;"&gt;112&lt;/span&gt;                 infoOptions.content = marker.getLatLng().toString();&lt;br /&gt;&lt;span style="color: #008080;"&gt;113&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;标注拖动时关闭提示框&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;114&lt;/span&gt;                 marker.addEventListener(MapMouseEvent.DRAG_START,&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(e:Event):void{&lt;br /&gt;&lt;span style="color: #008080;"&gt;115&lt;/span&gt;                     marker.closeInfoWindow();&lt;br /&gt;&lt;span style="color: #008080;"&gt;116&lt;/span&gt;                 });&lt;br /&gt;&lt;span style="color: #008080;"&gt;117&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;拖动接受时显示提示框&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;118&lt;/span&gt;                 marker.addEventListener(MapMouseEvent.DRAG_END,&lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(e:Event):void{&lt;br /&gt;&lt;span style="color: #008080;"&gt;119&lt;/span&gt;                     infoOptions.content = marker.getLatLng().toString();&lt;br /&gt;&lt;span style="color: #008080;"&gt;120&lt;/span&gt;                     marker.openInfoWindow(infoOptions);&lt;br /&gt;&lt;span style="color: #008080;"&gt;121&lt;/span&gt;                 });&lt;br /&gt;&lt;span style="color: #008080;"&gt;122&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;点击标注时显示提示框&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;123&lt;/span&gt;                 marker.addEventListener(MapMouseEvent.CLICK, &lt;span style="color: #0000ff;"&gt;function&lt;/span&gt;(e:Event):void {&lt;br /&gt;&lt;span style="color: #008080;"&gt;124&lt;/span&gt;                     infoOptions.content = marker.getLatLng().toString();&lt;br /&gt;&lt;span style="color: #008080;"&gt;125&lt;/span&gt;                     marker.openInfoWindow(infoOptions);&lt;br /&gt;&lt;span style="color: #008080;"&gt;126&lt;/span&gt;                 });&lt;br /&gt;&lt;span style="color: #008080;"&gt;127&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008080;"&gt;128&lt;/span&gt;                 map.addOverlay(marker);&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;在地图上显示这个标注&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;129&lt;/span&gt;                 marker.openInfoWindow(infoOptions);&lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;打开对话框                &lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;130&lt;/span&gt;             }            &lt;br /&gt;&lt;span style="color: #008080;"&gt;131&lt;/span&gt;         ]]&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;132&lt;/span&gt;     &amp;lt;/fx:Script&amp;gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;133&lt;/span&gt; &amp;lt;/s:Application&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;下面就是我们看到的运行结果，线划地图：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012032610033216.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;影像地图：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012032610050079.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;到此，我们就可以完全的加载上天地图的数据了。&lt;/p&gt;&lt;p&gt;但是，细心的童鞋可能会发现同一个经纬度，在不同的地图下，位置不对，这是因为各地图厂商都对自己的地图数据进行了偏移，是人为加上去的，所以会有偏差，如果真实使用中，这个需要进行偏移纠正的，这是另一个话题了。&lt;/p&gt;&lt;p&gt;这里只给出一个加载的方式，如果正式使用各地图商的数据，请与他们联系！&lt;/p&gt;&lt;p&gt;完整的项目代码从这里下载：&lt;a href="http://files.cnblogs.com/liongis/FGMapTianditu.zip"&gt;http://files.cnblogs.com/liongis/FGMapTianditu.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2417456.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/03/26/2417456.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2012/01/27/2330290.html</id><title type="text">[源码]游戏控制者--让小朋友游戏学习两相顾</title><summary type="text">2012年的新年已到来，在这里先给大家拜个晚年，祝大家在新的一年里，身体健康，工作顺利，阖家欢乐！现在的小孩越来越迷恋游戏，能不能可以游戏学习共兼顾呢，就是能让他们玩一会游戏，就停下来，学习一会？“游戏控制者”就是这样一个程序，源代码附在后面，就不在文章中贴出来了，希望能抛砖引玉。</summary><published>2012-01-27T15:36:00Z</published><updated>2012-01-27T15:36:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/01/27/2330290.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/01/27/2330290.html"/><content type="html">&lt;p&gt;2012年的新年已到来，在这里先给大家拜个晚年，祝大家在新的一年里，身体健康，工作顺利，阖家欢乐！&lt;/p&gt;&lt;p&gt;废话少说，为什么写这个程序呢？原因是这次春节的时候，几天都和一个朋友的小孩在一起玩，这个小孩才5岁，就迷恋上了《植物大战僵尸》，而且已经玩得很熟练。一天到晚就是挂念着玩游戏，玩具对他已经没有吸引力了，除了电脑上的游戏，手机游戏，IPAD游戏，虽然现在还不认识字，但只要看别人玩一次，他就会试着去玩。也感叹现在的小孩聪明，想想我们5岁的时候，还在玩泥巴，哪有这些东西玩。另一方面也很同情现在的小孩，都是独生子女，没有同伴一起玩，确实无聊，总不能让他一天到晚都发呆吧，但总玩游戏肯定不好，能不能可以游戏学习共兼顾呢，就是能让他们玩一会游戏，就停下来，学习一会？&lt;/p&gt;&lt;p&gt;需求就是从这里来的，想了想应该不复杂，主要完成以下几件事情：&lt;/p&gt;&lt;p&gt;1.程序运行后，开始计时，到设定的时间后，窗口最前显示，占住屏幕，隐藏后面的程序。&lt;/p&gt;&lt;p&gt;2.程序能够出一些简单的计算题（目前只有加减法），多少道题可以设定，都答对后程序隐藏，开始计时。&lt;/p&gt;&lt;p&gt;3.能对参数进行设置。&lt;/p&gt;&lt;p&gt;4.手动退出系统时，需要输入密码。&lt;/p&gt;&lt;p&gt;当然，这里面还有一些友好度的设计，如显示这道题的答案，跳过当前题，禁止按ALT+F4退出系统，系统托盘处理等等。&lt;/p&gt;&lt;p&gt;经过几个小时的奋战，终于有了一个结果，效果如下：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012012723183960.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;设置界面：&amp;ldquo;游戏时间&amp;rdquo;是多少分钟后弹出计算的界面，&amp;ldquo;出题数&amp;rdquo;是一共要计算多少道题，&amp;ldquo;出题最小数字和最大数字&amp;rdquo;是出题数据的范围，因为这个小朋友只有5岁，还只会1到10以内的加减法，所以这里是这么设置的，&amp;ldquo;退出密码&amp;rdquo;是设置退出系统时的密码，初始密码是：&lt;span style="color: #ff0000;"&gt;admin&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012012723191915.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;退出系统：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012012723194514.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;可以根据自己的情况进行设置。&lt;/p&gt;&lt;p&gt;如果有需要的朋友，请从这里下载：&lt;a href="http://files.cnblogs.com/liongis/GameControlSetup.zip"&gt;GameControlSetup.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;源代码在这里：&lt;a href="http://files.cnblogs.com/liongis/GameControl.zip"&gt;GameControl.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;当然，程序也有很多不完善的地方，如现在只有加减法，程序可以通过任务管理器来结束掉任务等等，大家也可以继续扩展，写出更多实用的程序来，如果有什么好的想法，也可以告诉我，一起交流！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2330290.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/01/27/2330290.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2012/01/16/2324153.html</id><title type="text">基于ArcEngine写的GoogleMap地图切割程序</title><summary type="text">离上写的《基于SuperMap Objects写的GoogleMap地图切割程序(三)》 已经有大半年的时间了，这半年时间里，因为杂七杂八的事情比较多，所以也很少更新博客内容，今天是小年，特将最近基于ArcEngine写的Google Map地图切割程序与大家分享。这里我会从数据制作－切图－发布给大家进行介绍，并结合之前做的Google Map API3 离线版，告诉大家如何布署一个真正的离线WebGIS系统.</summary><published>2012-01-16T14:34:00Z</published><updated>2012-01-16T14:34:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2012/01/16/2324153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2012/01/16/2324153.html"/><content type="html">&lt;p&gt;离上写的&lt;a href="http://www.cnblogs.com/liongis/archive/2011/06/27/2091132.html"&gt;《基于SuperMap Objects写的GoogleMap地图切割程序(三)》 &lt;/a&gt;已经有大半年的时间了，这半年时间里，因为杂七杂八的事情比较多，所以也很少更新博客内容，今天是小年，特将最近基于ArcEngine写的Google Map地图切割程序与大家分享。这里我会从数据制作－切图－发布给大家进行介绍，并结合之前做的&lt;a href="http://www.cnblogs.com/liongis/archive/2011/04/28/2032316.html"&gt;Google Map API3 离线版&lt;/a&gt;，告诉大家如何布署一个真正的离线WebGIS系统：&lt;/p&gt;&lt;p&gt;一.环境准备：&lt;/p&gt;&lt;p&gt;1.ArcEngine:因为我们使用是的是ArcEngine做为平台来开发，所以这个是必须的，&lt;span style="color: #ff0000;"&gt;版本为9.3&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;2.ArcMap:目前切图工具中没有增加地图配置的功能，只能打开已经配置好的地图文件，所以这里还需要有ArcMap来进行地图数据的配置。&lt;/p&gt;&lt;p&gt;3.DotNet：程序是用C#开发的，所以得有这个环境。这个网上很多，大家搜一下就可以了，下载.NET Framework 2.0就可以。&lt;/p&gt;&lt;p&gt;之所以选择用ArcGIS来开发还有一个原因是国内的用户比较多，PJ相对也会多些，如何安装网上也有很多资料，大家可以搜一下。&lt;/p&gt;&lt;p&gt;二.地图配置：&lt;/p&gt;&lt;p&gt;安装完ArcMap和ArcEngine后，我们就可以对需要切割的地图数据进行配置。因为Google Map使用的是WEB WGS84的投影方式，所以我们在配置的时候也需要配置成和Google Map相同的坐标系统，坐标配置文件从这里下载：&lt;a href="http://files.cnblogs.com/liongis/GoogleMercator(world).zip"&gt;Google Mercator (world).prj&lt;/a&gt;。当然我们还需要准备一份切图用的数据，这里使用的是ESRI公司做的测试数据。&lt;/p&gt;&lt;p&gt;下载地址是：&lt;a href="http://www.esrichina.com.cn/downloadcenter/jsrd/uploadfile/jsrd/Esri公共地理框架电子地图模板_V1.31%20for%20ArcGIS%209.3.1.rar" target="_blank"&gt;Esri公共地理框架电子地图模板_V1.31 for ArcGIS 9.3.1&lt;/a&gt;&lt;/p&gt;&lt;p&gt;对于地图配置和使用，这里已经讲得很清楚，这里也非常感谢ESRI能分享出这些资料来。&lt;/p&gt;&lt;p&gt;配置完的数据应该是下面这个样子：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011622120895.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;三.地图切图：&lt;/p&gt;&lt;p&gt;配置好的地图数据我会随后和程序一起打包提供给大家下载。当然，大家也可以使用自己的矢量数据和影像数据，只要通过ArcMap配置好的地图，我们应该都可以用这个程序来进行地图切割。&lt;/p&gt;&lt;p&gt;1.现在我们来运行我们的切图工具，这是地图界面，程序默认加载所在的Data目录下的Map.mxd文件。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011621442265.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;这个地图数据的坐标系我已经配置好的，可以用ArcMap直接打开这份地图数据可以看得到。&lt;/p&gt;&lt;p&gt;2.我们切换到切图界面：在这里，我们可以指定需要切图的范围，和需要输出的等级，我已经在程序中设定好了，如果是新数据，请自行设定。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011621475155.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;3.切图参数我们都设置好后，点击&amp;ldquo;地图输出&amp;rdquo;，选择保存的路径后，系统开始切图工作。　&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011621535676.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;4.切图完成后，会提示使用的时间和切图的数量:&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011621594320.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;四.数据发布：&lt;/p&gt;&lt;p&gt;1.再将切完后的地图图片数据拷贝到Google Map API V3离线版所在的tilemap目录下，如果不想自己切图的，也可使用我切好的地图数据进行查看：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011622013066.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;2.打开Google Map API V3离线版目录下的maptype-tms.html文件，就可以看到效果：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2012/129408/2012011622035630.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;3.maptype-tms.html文件中默认是加载当前目录下tilemap目录中的图片数据，你也可以指定到其它的目录，当然，如果你把图片放在WEB服务器上，将这个地址改为服务器的地址就可以了，这样就完全可以部署一个属于自己的Google Map地图浏览程序了（提前你是这么多的数据，呵呵）。&lt;/p&gt;&lt;p&gt;让大家久等了，切图相关的下载在这里：&lt;/p&gt;&lt;p&gt;切图工具和地图数据：&lt;a href="http://files.cnblogs.com/liongis/GMapExprotForArcEngine.zip"&gt;GMapExprotForArcEngine.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Google Map API V3离线版:&lt;a href="http://files.cnblogs.com/liongis/GoogleMapAPIV3.zip"&gt;GoogleMapAPIV3.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;切图后数据：&lt;a href="http://files.cnblogs.com/liongis/GoogleMapAPIV3Demo.zip"&gt;GoogleMapAPIV3Demo.zip&lt;/a&gt;(空间有限，所以只上传了6－8级，9和10级请自己进行切图)&lt;/p&gt;&lt;p&gt;由于水平有限，程序可能会存在不完善的地方，请告诉我，如果你有更好的建议，也请告诉我。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2324153.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2012/01/16/2324153.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2011/12/10/2283516.html</id><title type="text">GoogleMap地图图片请求数据限制解决办法</title><summary type="text">最近GoogleMap对于通过API访问的地图服务的请求不再是完全免费，用户每日每个API最多可以生成25000个地图下载任务，对于地图图片则限制在2500张。这会对很多使用Google Map API开发的应用程序有很大的影响，特别是在国内。也到不少朋友的寻问，完全突破的方式还没有，想了一种变通的方式来解决。</summary><published>2011-12-10T12:33:00Z</published><updated>2011-12-10T12:33:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2011/12/10/2283516.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2011/12/10/2283516.html"/><content type="html">&lt;p&gt;最近GoogleMap对于通过API访问的地图服务的请求不再是完全免费，用户每日每个API最多可以生成25000个地图下载任务，对于地图图片则限制在2500张。这会对很多使用Google Map API开发的应用程序有很大的影响，特别是在国内。也到不少朋友的寻问，完全突破的方式还没有，想了一种变通的方式来解决。&lt;/p&gt;&lt;p&gt;这个办法就是在我们的客户端和Google Map地图服务器之间架设一台地图图片缓存服务器，把需要的地图，先缓存在地图图片缓存服务器上，客户端请求时，先从缓存服务器上去获取，如果没有，再从Google Map地图服务器上获取，保存在本地，再从本地返回给客户端，这样就可以减少对Google Map地图图片服务器的请求次数。&lt;/p&gt;&lt;p&gt;当然，这种方法在开始的时候，请求量仍然会很大，不过到后面，数量就会越来越少。&lt;/p&gt;&lt;p&gt;大概流程如下：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011121201032930.png" alt="" /&gt;&lt;/p&gt;&lt;p&gt;流程已经很简单了，中间实现的方式也不复杂，只要能实现上面的功能，使用哪个平台不重要，下面是前端自己定义地图类型的方式：&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #ff00ff;"&gt;DOCTYPE html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;http-equiv&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="Content-Type"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; content&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/html; charset=utf-8"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;Google Maps JavaScript API v3 Example: Image MapTypes&lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;link &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;href&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="mapfiles/css/default.css"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; rel&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="stylesheet"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/css"&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; src&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="http://maps.google.com/maps/api/js?sensor=false"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LocalMapType() {}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.tileSize &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Size(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;256&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;256&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.maxZoom &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;15&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.minZoom &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;8&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.name &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;本地地图&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.alt &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;显示本地地图数据&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  LocalMapType.prototype.getTile &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;(coord, zoom, ownerDocument) {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; img &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; ownerDocument.createElement(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;img&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.style.width &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.tileSize.width &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;px&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.style.height &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;this&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;.tileSize.height &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;px&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.onerror &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;(){&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        img.src &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;c:\\Map\\nomap.png&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;var strURL = "C:\\Map\\Google_Hybrid\\" + zoom + "\\" + coord.x + "\\" + coord.y + ".png";&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; strURL &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;http://localhost:8080/gettitle/gettitle.png?x=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; coord.x &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;amp;y=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; coord.y &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&amp;amp;z=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;+&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; zoom; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      img.src &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; strURL;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;return&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; img;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  };&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; localMapType &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; LocalMapType();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;function&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; initialize() {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; myLatlng &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.LatLng(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;36.867078&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;119.286772&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; myOptions &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      center: myLatlng,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      zoom: &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;11&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      streetViewControl: &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;false&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;      mapTypeControlOptions: {&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;            mapTypeIds: [&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;local&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    };&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;var&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; map &lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;=&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #0000ff;"&gt;new&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt; google.maps.Map(document.getElementById(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;map_canvas&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;),&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;        myOptions);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    map.mapTypes.set(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;local&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;, localMapType);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;    map.setMapTypeId(&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;local&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #f5f5f5; color: #000000;"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt;  }&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt; &lt;span style="background-color: #f5f5f5; color: #000000;"&gt; &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;onload&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="initialize()"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt;   &lt;span style="color: #0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div &lt;/span&gt;&lt;span style="color: #ff0000;"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="map_canvas"&lt;/span&gt;&lt;span style="color: #ff0000;"&gt; style&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;="width: 640px; height: 480px;"&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2283516.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2011/12/10/2283516.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2011/09/27/2192923.html</id><title type="text">如何处理更改计算机名称导致oracle无法启动</title><summary type="text">安装Oracle后，更改Windows计算机名，导致部分Oracle第三方工具，如:PLSQL Developer无法登陆，并提示ORA-12541:TNS:no listener或ORA-12547:TNS:丢失联系等错误信息的解决方法。</summary><published>2011-09-27T03:12:00Z</published><updated>2011-09-27T03:12:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2011/09/27/2192923.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2011/09/27/2192923.html"/><content type="html">&lt;p&gt;1.安装Oracle后，更改Windows计算机名，导致部分Oracle第三方工具，如:PLSQL Developer无法登陆，并提示ORA-12541:TNS:no listener或ORA-12547:TNS:丢失联系等错误信息的解决方法。&lt;/p&gt;&lt;p&gt;答：从Oracle的错误提示来看,是说TNS:no listener ，估计是某种服务没有启动，打开windows管理工具-&amp;gt;服务，一看，有一个OracleOraHome90TNSListener这样的服务，和错误信息题是一致，基本就可以肯定是这个服务所引发的问题。再一看，该服务没有启动，遂手工启动，刷新后一看，该服务居然马上就自动关闭了。重试N次，结果一样。到Google搜索看看，没想到这还是一个普遍的问题，有一个人提出，把安装目录下的listener.ora打开察看。如：d:\oracle\ora90\network\admin\listener.ora。&lt;br /&gt;打开该配置文件后发现如下一段配置信息：&lt;br /&gt;LISTENER =&lt;br /&gt;&amp;nbsp; (DESCRIPTION_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (DESCRIPTION =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS_LIST =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (ADDRESS = (PROTOCOL = TCP)(HOST = local)(PORT = 1521))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; )&lt;br /&gt;&amp;nbsp; )&lt;br /&gt;&amp;nbsp;&lt;br /&gt;当看到这一行HOST=local 的时候，问题解决了。原来是由于几天装好Oracle后，又改了Windows的计算机名，而这个配置文件中记录的监听主机名还是原来的名称，这也就怪不得，OracleOraHome90TNSListener服务无法启动了，马上修改为现在的计算机名，再次启动OracleOraHome90TNSListener服务成功，PL/SQL Developer连接Oracle数据库成功，不能登陆故障排除。&lt;/p&gt;&lt;p&gt;总结：Oracle比较强调手动功能调整，将一些配置信息放置在配置文件中。不像SqlServer一样，几乎把任何信息都放在注册表中，当然了这也符合Oracle作为一个跨平台数据库的精神。但对初学者来说，确有一定难度，不像SqlServer那么"傻瓜"，再解决这个问题时，差点又重装一次Oracle，看来遇到问题多Google多分析，还是屡试不爽的。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2192923.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2011/09/27/2192923.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2011/06/27/2091132.html</id><title type="text">基于SuperMap Objects写的GoogleMap地图切割程序(三)</title><summary type="text">这个工具主要的功能是将矢量的地图数据，输出成Google Maps一样的图片数据，确切的说是TMS(Tile Map Service)图片编码方式，这样就很方便的使用WEBGIS API对这些图片进行加载，发布成Google Maps一样的地图服务，提高访问速度。当然也可以加载自己的业务数据，集成到现在的业务系统中。有了自己的数据后，可发布于局域网或互联网。</summary><published>2011-06-27T02:26:00Z</published><updated>2011-06-27T02:26:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2011/06/27/2091132.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2011/06/27/2091132.html"/><content type="html">&lt;p&gt;这个工具主要的功能是将矢量的地图数据，输出成Google Maps一样的图片数据，确切的说是TMS(&lt;span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;" class="Apple"&gt;&lt;span style="font-family: 'trebuchet ms', 'luxi sans', sans-serif; color: #444444; font-size: 15px;" class="Apple"&gt;Tile Map Service&lt;/span&gt;&lt;/span&gt;)图片编码方式，这样就很方便的使用WEBGIS API对这些图片进行加载，发布成Google Maps一样的地图服务，提高访问速度。当然也可以加载自己的业务数据，集成到现在的业务系统中。有了自己的数据后，可发布于局域网或互联网。&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;程序请从以下地址下载：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;a href="http://files.cnblogs.com/liongis/GMapExport1.2.rar"&gt;&lt;span style="color: #ff0000;"&gt;http://files.cnblogs.com/liongis/GMapExport1.2.rar&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;这次主要是基于之前版本的一个升级，主要修改的内容有：&lt;/p&gt;&lt;p&gt;1.使用新的投影配置，新的配置请参见《&lt;a id="homepage1_HomePageDays_DaysList_DayItem_0_DayList_0_TitleUrl_0" class="postTitle2" href="http://www.cnblogs.com/liongis/archive/2011/06/24/2088767.html"&gt;SuperMap Desktop中配置Google Maps地图投影&lt;/a&gt;》，修改这个原因是因为之前的配置，程序中对地图数据进行了二次投影换算，所以在精度上会有点差别，所以导致在某些地方两副图相接的时候会出现一条白线或重叠的部分。&lt;/p&gt;&lt;p&gt;2.增加了显示TMS编号的功能，可以在切图前更好的看到需要切图的范围和编号是怎么样的。&lt;/p&gt;&lt;p&gt;3.增加&amp;ldquo;继续上次切图&amp;rdquo;功能，使程序在切图过程中被中断的情况下，下次可以继续上次未切完的数据再进行切图。&lt;/p&gt;&lt;p&gt;主要的完成功能界面如下：&lt;/p&gt;&lt;p&gt;打开地图后界面：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062710073072.png" /&gt;&lt;/p&gt;&lt;p&gt;显示TMS编号：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062710115813.png" /&gt;&lt;/p&gt;&lt;p&gt;切图：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062710144575.png" /&gt;&lt;/p&gt;&lt;p&gt;下面用FGMap加载我们切出来的地图做个测试：&lt;/p&gt;&lt;p&gt;上面我们看到的是北京地图，我们测试切出来的图是一个全国地图，加载后的界面是：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062713424624.png" /&gt;&lt;/p&gt;&lt;p&gt;测试的程序和测试数据请从这里下载：&lt;a href="http://files.cnblogs.com/liongis/TMS.rar"&gt;http://files.cnblogs.com/liongis/TMS.rar&lt;/a&gt;&lt;/p&gt;&lt;p&gt;如有需要的朋友可以与我联系！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2091132.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2011/06/27/2091132.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/liongis/archive/2011/06/24/2088767.html</id><title type="text">SuperMap Desktop中配置Google Maps地图投影</title><summary type="text">本文介绍了如何通过SuperMap Desktop设置和Google Maps一样的数据投影方式。</summary><published>2011-06-24T03:39:00Z</published><updated>2011-06-24T03:39:00Z</updated><author><name>liongis</name><uri>http://www.cnblogs.com/liongis/</uri></author><link rel="alternate" href="http://www.cnblogs.com/liongis/archive/2011/06/24/2088767.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/liongis/archive/2011/06/24/2088767.html"/><content type="html">&lt;p&gt;&lt;strong&gt;我们先来了解一下Google Maps采用的地图投影&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple" style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span class="Apple" style="text-indent: 28px; font-family: Arial; color: #222222; font-size: 14px;"&gt;Google Maps&lt;span style="line-height: normal;"&gt;、&lt;/span&gt;&lt;span style="line-height: normal;"&gt;Virtual Earth&lt;/span&gt;&lt;span style="line-height: normal;"&gt;等网络地理所使用的地图投影，常被称作&lt;/span&gt;&lt;span style="line-height: normal;"&gt;Web Mercator&lt;/span&gt;&lt;span style="line-height: normal;"&gt;或&lt;/span&gt;&lt;span style="line-height: normal;"&gt;Spherical Mercator&lt;/span&gt;&lt;span style="line-height: normal;"&gt;，它与常规墨卡托投影的主要区别就是把&lt;span style="color: #ff0000;"&gt;地球模拟为球体而非椭球体&lt;/span&gt;。为什么要投影，请参见LionGG的&lt;span class="Apple" style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span class="Apple" style="text-indent: 28px; font-family: Arial; color: #222222; font-size: 14px;"&gt;《&lt;a target="_blank" href="http://hi.baidu.com/liongg/blog/item/3e016e06c5ceea7f0208810e.html" style="line-height: normal; text-decoration: none;"&gt;地图投影为什么&lt;/a&gt;》&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;为什么是圆形球体，而非椭球体？&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这说来简单，仅仅是由于实现的方便，和计算上的简单，精度理论上差别0.33%之内，特别是比例尺越大，地物更详细的时候，差别基本可以忽略。&lt;span style="color: #ff0000;"&gt;Google Maps使用的是WGS 84的参考球体&lt;/span&gt;。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Web&lt;/strong&gt;&lt;strong&gt;墨卡托投影坐标系&lt;/strong&gt;：&lt;/p&gt;&lt;p&gt;以整个世界范围，赤道作为标准纬线，本初子午线作为中央经线，两者交点为坐标原点，向东向北为正，向西向南为负。&lt;/p&gt;&lt;p&gt;X轴：由于赤道半径为6378137米，则赤道周长为2*PI*r = 2*20037508.3427892，因此X轴的取值范围：&lt;/p&gt;&lt;p&gt;[-20037508.3427892,20037508.3427892]。&lt;/p&gt;&lt;p&gt;Y轴：由墨卡托投影的公式可知，同时上图也有示意，当纬度&amp;phi;接近两极，即90&amp;deg;时，y值趋向于无穷。这是那些&amp;ldquo;懒惰的工程师&amp;rdquo;就把Y轴的取值范围也限定在&lt;/p&gt;&lt;p&gt;[-20037508.3427892,20037508.3427892]之间，搞个正方形。&lt;/p&gt;&lt;p&gt;懒人的好处，众所周知，事先切好静态图片，提高访问效率云云。俺只是告诉你为什么会是这样子。因此在投影坐标系（米）下的范围是：最小(-20037508.3427892, -20037508.3427892 )到最大&amp;nbsp;(20037508.3427892, 20037508.3427892)。&lt;/p&gt;&lt;p&gt;[注：上面这一段内容摘自LionGG的&lt;span class="Apple" style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: #000000; word-spacing: 0px;"&gt;&lt;span class="Apple" style="line-height: 18px; text-indent: 40px; font-family: Arial; font-size: 16px;"&gt;&lt;a href="http://hi.baidu.com/liongg/blog/item/4f6455fbe183381e6d22ebee.html"&gt;Google Maps地图投影全解析(1)：Web墨卡托投影&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;]&lt;/p&gt;&lt;p&gt;我觉得这一段已经写得很清楚了，所以转过来，其中我们需要重点知道的两点：&lt;strong&gt;&lt;span style="color: #ff0000;"&gt;Google Maps是使用的墨卡托投影，而地球模拟成球体而非椭球体&lt;/span&gt;&lt;/strong&gt;。&lt;/p&gt;&lt;p&gt;上面两点一定要注意，也是我们的配置的重点：&lt;/p&gt;&lt;p&gt;&lt;strong&gt;首先我们将数据源设置球体，这里需要修改数据源的投影方式，配置如下：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在需要修改的数据源上，点击右键，选择&amp;ldquo;属性&amp;rdquo;，如下图：&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411151782.png" /&gt;&lt;/p&gt;&lt;p&gt;这里我们使用的参考椭球体也是WGS_1984，但这里有一个&amp;ldquo;椭球扁率&amp;rdquo;为0.0033528107，而Google Maps是球体，所以这个&amp;ldquo;椭球扁率&amp;rdquo;我们需要设置为0，这样我们需要&amp;ldquo;重新设定投影&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411220344.png" /&gt;&lt;/p&gt;&lt;p&gt;这里选择经纬坐标系统，只是在&amp;ldquo;地理坐标系&amp;rdquo;是选择&amp;ldquo;User Define&amp;rdquo;，然后下一步：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411230453.png" /&gt;&lt;/p&gt;&lt;p&gt;请参照上面的值进行设定，主要将&amp;ldquo;赤道半径&amp;rdquo;设置为：6378137，&amp;ldquo;扁率&amp;rdquo;设置为：0，完成后效果如下：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411244320.png" /&gt;&lt;/p&gt;&lt;p&gt;这样就可以了，到此我们的数据源投影设置完成，关闭这个窗口即可。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;接下来我们需要设置地图的投影，在地图上点击右键，选择&amp;ldquo;属性&amp;rdquo;：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411260886.png" /&gt;&lt;/p&gt;&lt;p&gt;我们这里选择的投影方式为：Mercator，但这里也有一个&amp;ldquo;椭球扁率&amp;rdquo;，这个不是我们想要的，所以点击&amp;ldquo;设置&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411274167.png" /&gt;&lt;/p&gt;&lt;p&gt;请参照上图进行设定，完成后&amp;ldquo;下一步&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411285837.png" /&gt;&lt;/p&gt;&lt;p&gt;请参照上图进行设定，完成后&amp;ldquo;下一步&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411293425.png" /&gt;&lt;/p&gt;&lt;p&gt;这里比例因子我们设置为：1，然后&amp;ldquo;下一步&amp;rdquo;：&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/129408/2011062411301283.png" /&gt;&lt;/p&gt;&lt;p&gt;这样我们就设置完成了，点击&amp;ldquo;应用&amp;rdquo;就OK啦！&lt;/p&gt;&lt;p&gt;经过上面的配置，我们就完成了在SuperMap Desktop中对Google Maps相同地图投影的设定，有朋友会问，这样设定后有什么用呢？&lt;/p&gt;&lt;p&gt;这就看每一个人的应用了，我这样来设置是为了能得到和Google Maps一样的投影和坐标，可以用来切图使用，将矢量图生成和Google Maps一样的图片数据。&lt;/p&gt;&lt;p&gt;切图的使用我会别开文章进行介绍，有兴趣的朋友可以关注一下。&lt;/p&gt;&lt;p&gt;由于水平有限，文中难免会有错误，希望朋友们进行指正。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/liongis/aggbug/2088767.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/liongis/archive/2011/06/24/2088767.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
