我正在做一个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

07-24 09:26