0

我正在做一个需要我使用谷歌地图的 Flash 项目。我读到一篇文章说“Google Maps API for Flash 已于 2011 年 9 月 2 日正式弃用”。我的问题是,是否可以在 Flash 项目中嵌入 google maps javascript 版本?我的另一个问题是,有没有人知道我可以用于闪存的任何地图工具,它们提供与谷歌地图相同的质量并且仍然受到支持?谢谢你。

4

1 回答 1

2

我有同样的需求,也找不到一个好的现成解决方案,所以我在下面编写并注释了一个测试库,它可以作为任何类似项目的基础。

我没有依赖单个提供程序,而是在 Flash 中跨 Bing Maps V7、Google Maps V3 和 MapQuest Maps V7 JavaScript 地图实现了相同的功能。代码创建线条、动态标记和阴影等,并调用它们的高程 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]),以允许设置图标、阴影、线条颜色及其位置更改或删除。

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

于 2013-02-22T16:47:47.703 回答