我正在做一个Flash项目,该项目需要我使用Google Maps。我读了一篇文章,内容为“自2011年9月2日起,正式弃用Flash的Google Maps API”。我的问题是,是否可以在Flash项目中嵌入Google Maps JavaScript版本?我的另一个问题是,有谁知道我可用于Flash的任何映射工具,这些工具可提供与Google地图相同的质量,并且仍受支持?谢谢。
最佳答案
我有同样的需求,也找不到好的现成的解决方案,因此我在下面编写了代码并注释了一个测试库,该库可以作为任何类似项目的基础。
我不再依赖单个提供程序,而是在Bing Maps V7,Google Maps V3和MapQuest Maps V7 JavaScript地图中的Flash中实现了相同的功能。该代码创建线,动态标记和阴影等,并调用其高程API。该示例应用程序在一个html页面中创建每种地图类型的两种。
为此,您需要让Flash和JavaScript通过注册具有该项目唯一名称的函数的数据和/或闭包来相互调用。
首先,每个地图都有一个唯一的mapId,每个地图MXML组件使用其唯一的mapId(例如fname_mapId)注册一组外部方法,然后为传递mapId,应用程序名称的三种地图类型之一创建带有参数化src HTML的Flex-iFrame。 ,开始位置等
HTML读取这些参数,并通过应用程序名称从父框架获取SWF对象。它创建一个映射并向该映射注册侦听器,并使用其mapId(例如fname_mapId)向其父框架添加回调,从而允许创建标记和行,每个标记和行都具有唯一的ID,并再次向当前的父框架注册功能在其名称中还包括标记或行ID(例如fname_mapId_ [lineId | markerId]),这些ID允许设置图标,阴影,线条颜色及其位置更改或删除。
HTML还通过mapId注册函数,以通常检查位置或路径的高程。这些调用ajax或例程来请求海拔,然后返回JavaScript,然后再返回AS3注册的函数。
-C
测试动作和回调中的逻辑-旨在测试所有已实现的功能:
Double click on map:
Create pin:
- Set to default name
- Add to map
- Set icon and shadow (note Bing does not take shadows; Google can take a marker mask for clicking - not implemented)
- Call to map for elevation
Remove previous marker
Log current markers (should be only 1)
Create black line from start to pin:
- Change line color to blue
- Call to map for path elevation
Remove previous line
Log current lines (should be only 1)
Drag marker:
Start:
- only logs it was called
Drag:
- only logs it was called
End:
- Move line to new lat lng
- Set line color to orange
- Sets map to not accept double clicks
Double click marker:
- Sets map to accept double clicks again (so after you drag you need to double click a marker to have map accept double clicks again)
Elevation callback:
- Changes pin name to include elevation in name
- Sets new icon and shadow for marker
Elevation path callback - set to 300m & 500m - is balloon at 500m on path going to hit? - error if elevation of path >=500, warn if >=300
- Sets line color if path max elevation as sampled is:
Purple: elevation request error flag set
Red: at or above error level
Red-Yellow: at or above warning but requested distance not met
Yellow: at or above warning level
Yellow-Green: below warning level but requested distance not met
Green: below warning level
带有代码的帖子的其余部分太长了,链接太多了,所以我不得不将其全部放在此处-复制到纯文本编辑器中-代码的格式都很好用空格:http://pastebin.com/Jzq5E06F