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

ammap 使用及破解

阅读更多
  公司最近的项目上需要一个能在地图上显示各个基地的功能,首先想到的是用类似google baidu的地图api的方案,被老总以不够炫为由给否了。
 
    以前在项目中用过amchart,记得有一个孪生兄弟 ammap。基于对amchart的良好印象,遂决定用ammap。

   以下是部分代码

 <script type="text/javascript">
			var w=$("#rbody").width();
			var so = new SWFObject("${pageContext.request.contextPath}/static/chart/ammap.swf", "ammap", w, "600", "8", "#e5f5fd");
				so.addVariable("path", "${pageContext.request.contextPath}/static/chart/");
				so.addVariable("settings_file", escape("${pageContext.request.contextPath}/static/chart/countries.xml"));
				so.addVariable("data_file", escape("${pageContext.request.contextPath}/plan/createamMapXml"));
				so.write("flashcontent"); 
</script>

关键读取数据是createamMapXml这个方法


String createamMapXml(HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		SAXBuilder sb = new SAXBuilder();
		InputStream input = Thread.currentThread().getContextClassLoader()
				.getResourceAsStream("china.xml");
		Document doc = sb.build(input);
		String contextPath=request.getContextPath();
		Element map = doc.getRootElement();
		Element movies = new Element("movies");
		marketPriceService.createMap(contextPath, map, movies);
		String xmlStr = formatXml(doc);
//		System.out.println(xmlStr);
		response.setContentType("text/xml");
		return xmlStr;
}

public void createMap(String contextPath, Element map, Element movies) {
		List<Bases> list = basesService.getBasesByCurrentStateAndBases(0);
		Element areas=map.getChild("areas");
		List areaList=areas.getChildren("area");
		for (Iterator<Bases> iterator = list.iterator(); iterator.hasNext();) {
			Bases bases = (Bases) iterator.next();
//			System.out.println(bases.getRegion().getState());
			Element movie = new Element("movie");
			movie.setAttribute("title", bases.getName()==null?"": bases.getName());
			movie.setAttribute("file", "target");
			movie.setAttribute("color", "#FFBB77");
			movie.setAttribute("width", "10");
			movie.setAttribute("height", "10");
			
			movie.setAttribute("long", String.valueOf(bases.getLongitude()));
			movie.setAttribute("lat", String.valueOf(bases.getLatitude()));
			movie.setAttribute("url", 
					contextPath+ "/plan/planBaseQuery?baseId=" + bases.getId());
			movie.setAttribute("fixed_size", "true"); 
			movies.addContent(movie);
			for (Iterator iterator2 = areaList.iterator(); iterator2.hasNext();) {
				Element area = (Element) iterator2.next();
				String title=area.getAttribute("title").getValue();
				if(StringUtils.isNotBlank(title)&&bases.getRegion().getState().contains(area.getAttribute("title").getValue()))
					area.setAttribute("color","#55AA00");
			}
		}
		Element movie = new Element("movie");
		movie.setAttribute("title","北京");
		movie.setAttribute("file", "star.gif");
		movie.setAttribute("color", "#CC0000");
		movie.setAttribute("width", "15");
		movie.setAttribute("height", "15");
		movie.setAttribute("long", "116.235004");
		movie.setAttribute("lat", "40.4850468229644"); 
		movie.setAttribute("fixed_size", "true"); 
		movies.addContent(movie);
		map.addContent(movies);
	}

china.xml

<map map_file="china.swf" tl_long="73.620045" tl_lat="53.553745" br_long="134.768463" br_lat="18.168882" zoom="95%" zoom_x="3.72%" zoom_y="5%">
  <areas>
    <area mc_name="CN_34" title="安徽" zoom="466.1997%" zoom_x="-290.31%" zoom_y="-269.99%"/>
    <area mc_name="CN_11" title="北京" zoom="1339.0088%" zoom_x="-907.23%" zoom_y="-546.2%"/>
    <area mc_name="CN_50" title="重庆" zoom="661%" zoom_x="-321.46%" zoom_y="-426.93%"/>
    <area mc_name="CN_35" title="福建" zoom="570%" zoom_x="-371.74%" zoom_y="-422.11%"/>
    <area mc_name="CN_62" title="甘肃" zoom="328%" zoom_x="-99.85%" zoom_y="-126.55%"/>
    <area mc_name="CN_44" title="广东" zoom="661%" zoom_x="-387.57%" zoom_y="-541.67%"/>
    <area mc_name="CN_45" title="广西" zoom="431.9835%" zoom_x="-197.24%" zoom_y="-344.27%"/>
    <area mc_name="CN_52" title="贵州" zoom="661%" zoom_x="-308%" zoom_y="-483%"/>
    <area mc_name="CN_46" title="海南" zoom="1536%" zoom_x="-861.05%" zoom_y="-1463.21%"/>
    <area mc_name="CN_13" title="河北" zoom="661%" zoom_x="-420.56%" zoom_y="-224.5%"/>
    <area mc_name="CN_23" title="黑龙江" zoom="213.5378%" zoom_x="-138.47%" zoom_y="-0.13%"/>
    <area mc_name="CN_41" title="河南" zoom="596.3039%" zoom_x="-347.74%" zoom_y="-323.87%"/>
    <area mc_name="CN_91" title="香港" zoom="2000%" zoom_x="-1287.27%" zoom_y="-1771.35%"/>
    <area mc_name="CN_42" title="湖北" zoom="661%" zoom_x="-364.52%" zoom_y="-412.67%"/>
    <area mc_name="CN_43" title="湖南" zoom="561.0002%" zoom_x="-298.31%" zoom_y="-394.87%"/>
    <area mc_name="CN_15" title="内蒙古" zoom="169%" zoom_x="-57.44%" zoom_y="-12.88%"/>
    <area mc_name="CN_32" title="江苏" zoom="670%" zoom_x="-459.39%" zoom_y="-386.62%"/>
    <area mc_name="CN_36" title="江西" zoom="670%" zoom_x="-413.78%" zoom_y="-480.96%"/>
    <area mc_name="CN_22" title="吉林" zoom="470%" zoom_x="-352.64%" zoom_y="-114.03%"/>
    <area mc_name="CN_21" title="辽宁" zoom="565.7385%" zoom_x="-408.15%" zoom_y="-191.67%"/>
    <area mc_name="CN_92" title="澳门" zoom="661%" zoom_x="-428.53%" zoom_y="-246.17%"/>
    <area mc_name="CN_64" title="宁夏" zoom="757%" zoom_x="-357.92%" zoom_y="-338.77%"/>
    <area mc_name="CN_63" title="青海" zoom="461.4374%" zoom_x="-117.91%" zoom_y="-212.07%"/>
    <area mc_name="CN_61" title="陕西" zoom="461.4374%" zoom_x="-225.07%" zoom_y="-211.07%"/>
    <area mc_name="CN_37" title="山东" zoom="761.1344%" zoom_x="-508.99%" zoom_y="-367.03%"/>
    <area mc_name="CN_31" title="上海" zoom="2000%" zoom_x="-1525.75%" zoom_y="-1327.47%"/>
    <area mc_name="CN_14" title="山西"  zoom="462%" zoom_x="-245.21%" zoom_y="-195.04%"/>
    <area mc_name="CN_51" title="四川" zoom="364.3427%" zoom_x="-122.65%" zoom_y="-217.91%"/>
    <area mc_name="CN_12" title="天津" zoom="1683.576%" zoom_x="-1162.88%" zoom_y="-735.16%"/>
    <area mc_name="CN_54" title="西藏" zoom="245%" zoom_x="-11.59%" zoom_y="-124.76%"/>
    <area mc_name="CN_65" title="新疆" zoom="146.0037%" zoom_x="26.02%" zoom_y="-14.22%"/>
    <area mc_name="CN_53" title="云南" zoom="413.4326%" zoom_x="-140.39%" zoom_y="-306.15%"/>
    <area mc_name="CN_33" title="浙江" zoom="829.5282%" zoom_x="-588.25%" zoom_y="-568.46%"/>
    <area mc_name="TW" title="台湾" zoom="991.6529%" zoom_x="-719.43%" zoom_y="-819.77%"/>
    <area mc_name="borders" title="" color="#FFFFFF"/>
  </areas>
    <labels>
    <label long="84.947427" lat="42.4255522182285" text_size="12" color="#ADADAD" remain="true" >
      <text>新        疆</text>
    </label>
    <label long="93.664221" lat="35.9844221852234" text_size="12" color="#ADADAD" remain="true" >
      <text>青       海</text>
    </label>
    <label long="87.351449" lat="32.0448599653983" text_size="12" color="#ADADAD" remain="true" >
      <text>西       藏</text>
    </label>
    <label long="94.451443" lat="40.2213340878427" text_size="12" color="#ADADAD" remain="true" >
      <text>甘 肃</text>
    </label>
    <label long="102.503601" lat="40.7053671176742" text_size="12" color="#ADADAD" remain="true" >
      <text>内     蒙      古</text>
    </label>
    <label long="105.42382" lat="37.3192801788836" text_size="12" color="#ADADAD" remain="true" >
      <text>宁夏</text>
    </label>
    <label long="107.159457" lat="34.4963888002001" text_size="12" color="#ADADAD" remain="true" >
      <text>陕  西</text>
    </label>
    <label long="111.342981" lat="38.0728866718267" text_size="12" color="#ADADAD" remain="true" >
      <text>山 西</text>
    </label>
    <label long="114.2632" lat="38.6925749771918" text_size="12" color="#ADADAD" remain="true" >
      <text>河 北</text>
    </label>
    <label long="116.313726" lat="40.1379247682859" text_size="14" color="#ee0000" remain="true" >
      <text>北 京</text>
    </label>
    <label long="119.863724" lat="41.6601350846444" text_size="12" color="#ADADAD" remain="true" >
      <text>辽   宁</text>
    </label>
    <label long="123.81108" lat="44.3814182161181" text_size="12" color="#ADADAD" remain="true" >
      <text>吉  林</text>
    </label>
    <label long="124.838218" lat="47.4675971256227" text_size="12" color="#ADADAD" remain="true" >
      <text>黑  龙  江</text>
    </label>
    <label long="116.235004" lat="36.684938676849" text_size="12" color="#ADADAD" remain="true" >
      <text>山 东</text>
    </label>
    <label long="112.287647" lat="34.1014332163018" text_size="12" color="#ADADAD" remain="true" >
      <text>河 南</text>
    </label>
    <label long="110.394566" lat="31.6387174148497" text_size="12" color="#ADADAD" remain="true" >
      <text>湖 北</text>
    </label>
    <label long="106.289764" lat="30.0746786984768" text_size="12" color="#ADADAD" remain="true"  >
      <text>重 庆</text>
    </label>
    <label long="100.580529" lat="30.5783306607435" text_size="12" color="#ADADAD" remain="true" >
      <text>四   川</text>
    </label>
    <label long="99.111048" lat="24.8874581099438" text_size="12" color="#ADADAD" remain="true" >
      <text>云  南</text>
    </label>
    <label long="105.502542" lat="27.1538015125393" text_size="12" color="#ADADAD" remain="true" >
      <text>贵 州</text>
    </label>
    <label long="110.158399" lat="27.9248636108764" text_size="12" color="#ADADAD" remain="true" >
      <text>湖  南</text>
    </label>
    <label long="114.499367" lat="28.9016002459833" text_size="12" color="#ADADAD" remain="true" >
      <text>江 西</text>
    </label>
    <label long="116.156282" lat="31.6387174148497" text_size="12" color="#ADADAD" remain="true" >
      <text>安 徽</text>
    </label>
    <label long="118.049364" lat="33.9704099613927" text_size="12" color="#ADADAD" remain="true" >
      <text>江 苏</text>
    </label>
    <label long="121.524387" lat="31.1663917093303" text_size="12" color="#ADADAD" remain="true" >
      <text>上 海</text>
    </label> 
    <label long="118.68289" lat="29.3160185360148" text_size="12" color="#ADADAD" remain="true" >
      <text>浙 江</text>
    </label>
    <label long="117.104697" lat="26.4448121027352" text_size="12" color="#ADADAD" remain="true" >
      <text>福 建</text>
    </label>
    <label long="106.844569" lat="24.2987022240325" text_size="12" color="#ADADAD" remain="true" >
      <text>广 西</text>
    </label>
    <label long="112.36637" lat="23.7175422550551" text_size="12" color="#ADADAD" remain="true" >
      <text>广 东</text>
    </label>
    <label long="109.052539" lat="19.2954337299303" text_size="12" color="#ADADAD" remain="true" >
      <text>海 南</text>
    </label>
    <label long="120.418528" lat="23.8622173402318" text_size="12" color="#ADADAD" remain="true" >
      <text>台 湾</text>
    </label>
    <label long="117.18342" lat="39.0004249712802" text_size="12" color="#ADADAD" remain="true" >
      <text>天 津</text>
    </label>
  </labels>
  
   
</map>
到这里功能基本完成。。。

由于ammap和amchart一样是
This  software is free under a linkware license
存在一个ammap的logo链接

网上找了一下破解方法。。竟然没有现成的。只好自己动手 反编译amamp.swf


找到一个方法
function checkKey(serial)
{
    serial = com.ammap.Utils.stripSymbols(serial, " ");
    serial = com.ammap.Utils.stripSymbols(serial, "\n");
    serial = com.ammap.Utils.stripSymbols(serial, "\r");
    serial = com.ammap.Utils.stripSymbols(serial, "\r\n");
    arr = serial.split("-");
    if ((Number(arr[2]) + Number(arr[3]) == 8501 || Number(arr[2]) + Number(arr[3]) == 8801 || Number(arr[2]) + Number(arr[3]) == 8941) 
    && Number(arr[2].substr(1, 1)) - Number(arr[3].substr(2, 1)) == 5 
    || _url.split("/")[2].substr(-9) == "ammap.com")
    {
    }
    else
    {
        attachMovie("copyright_mc", "copyright_mc", 10001);
    } // end else if
} // End of the function

及这句话
if (key == undefined)
{
    key_loader.loadVars(path + "ammap_key.txt", this, "checkKey", false, "checkKey");
}


这也太容易破解了
在ammap所处的文件夹中新建一个ammap_key.txt文件
文件内容为
破-解-4960-3541-中国-lele

到此 大功告成!~~~
分享到:
评论

相关推荐

    ammap开源报表地图

    下面将详细解释ammap的主要特点和使用场景。 1. **主要特点** - **数据绑定与动态更新**:ammap支持将数据直接绑定到地图区域,根据数据的变化实时更新地图显示,非常适合展示地理分布数据。 - **丰富的地图资源*...

    ammap地图插件,js包地图插件,js包

    9. **自定义地图**:除了使用预设的地图,Ammap还支持自定义地图,用户可以创建自己的地理形状文件(如SVG或JSON),并将其导入到Ammap中,以适应特殊需求。 10. **优化和性能**:对于大数据量或高并发的场景,...

    ammap_3.21.15.free.zip

    SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。SVG提供了3种类型的图形对象:矢量图形(vectorgraphicshape例如:由直线和曲线组成的路径)、图象(image)、文本(text)。图形对象还可进行分组、添加...

    ammap-开源

    6. `ammap_.swf`、`ammap.swf`:这两个是Adobe Flash的SWF文件,其中包含了ammap的地图组件。Flash曾经是创建互动内容和动画的流行技术,尤其适用于在线地图和图形用户界面。然而,由于浏览器对Flash的支持逐渐减少...

    amcharts-ammap-iran-map:伊朗的 SVG 和 JS(JSON 格式)地图 - 包含在 ammap.com 中的高

    amcharts-ammap-伊朗地图 伊朗的 SVG 和 JS(JSON 格式)地图 - 包含在 ammap.com 中的高感谢免费提供 codepen 我只是将其转换为 ammap 格式。 ###USAGE 有关更多信息和使用的完整指南:

    网页世界地图动态展示

    网页世界地图动态展示是一种常见的数据可视化技术,常用于呈现全球性的数据分布、统计信息或交互式地理信息系统。...通过深入学习和理解这些文件,我们可以掌握使用JavaScript和AmMap库创建交互式地图的技能。

    js的相关包

    5. **Node.js**:JavaScript运行环境,使用V8引擎,让开发者可以在服务器端使用JavaScript。Node.js的核心特性包括非阻塞I/O、事件驱动和模块系统。 6. **Express.js**:基于Node.js的Web应用框架,简化了路由设置...

    一个全栈增长工程师的练手项目集 1

    8. **展示数据到地图上** 最后,使用AmMap将解析和转换后的地理位置数据渲染到交互式地图上,以可视化地展示网站用户的全球分布。 项目实施过程中,首先需要在不同操作系统上安装所需软件,如使用包管理器在Linux...

    react-amchart-basic

    项目使用的是麻省理工学院(MIT)许可证,这是一种非常宽松的开源软件许可证,允许你自由地使用、修改、复制、分发代码,只要保留原作者的版权信息即可。 总结来说,`react-amchart-basic`提供了一个基础框架,让你...

    FLASH地图报表

    - licence.txt:许可协议文件,说明了软件的使用条件和版权信息,用户在使用前应仔细阅读。 - readme.txt:通常包含安装或运行程序的说明,以及可能的注意事项。 - examples:这是一个目录,可能包含其他示例地图或...

    ammmap_2.54 地图程序工具

    - **ammap.html**:这是ammapp_2.54的官方文档或示例页面,用户可以从中了解软件的具体功能和使用方法。 - **changelog.txt**:记录了ammapp_2.54的更新历史,展示了各个版本的新特性、修复的bug以及性能优化等内容...

    amcharts_3.21.15.free.zip

    在这里,你可以找到核心的`amcharts.js`、`ammap.js`(地图功能)和其他相关模块,这些文件定义了AmCharts的API和功能。 `samples`目录包含了使用AmCharts创建的各种示例,这些例子可以帮助开发者理解如何创建不同...

    RAMMap.exe

    ammap是一款物理内存检测工具。rammap可以通过不同的方式在不同的标签里将系统中的各种物理内存分配情况详细检测并显示出来,然后通过指定的方式对不同区域内的物理内存进行清理,有效地减少系统运行负荷

    JavaScript Maps试用版:一款强大的交互式地JavaScriptHTML5地图控件

    JavaScript Maps是amCharts旗下的地图控件,所以又可称为"amMap"。它可以轻松添加交互式地图到Web页面和基于JavaScript 的应用程序。可以用JavaScript Maps显示办公室的位置,旅行线路,创建自己的经销商线路等。...

Global site tag (gtag.js) - Google Analytics