EGH*_*HDK 6 java android google-maps opengl-es android-webview
我需要我的应用程序的一部分,以获得由大约10栋建筑组成的正方形区域的交互式地图.您必须能够点击建筑物并获得有关它的一些信息.我知道有几种方法可以解决这个问题,但我希望有一些背景知识的人可以给我一些提示.
以下是我可以考虑实现这一目标的一些方法.
我已经实现了Google Maps API,但效果很好,但实际上并没有我想要的效果.Google地图需要互联网连接,您可以访问整个地图.我需要把它锁在一个区域.
这似乎是一个很好的选择.我确信我可以提供一个简单的图像映射,当您单击某个建筑物时,它会为您提供更多信息.唯一的问题是你还需要一个互联网连接.
我从来没有真正研究过这个问题,但我听说实施起来很困难而且很痛苦.它可以在本地运行,但值得吗?
有没有其他方法可以开发交互式地图?需要记住的是,我有一天也想把它移植到iOS上(如果有人也有这方面的经验)
从一开始回答您的问题可能需要 10 页。
我们先看这里:https : //developers.google.com/maps/documentation/android/hello-mapview
在您能够使用 MapView 之后,您只需要创建您的 ItemizedOverlay 类。
用教程中的 HelloItemizedOverlay 替换这个类。
public class GooglerMapItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlayItems = new ArrayList<OverlayItem>();
private Context mContext;
private Paint rectPaint, textPaint;
public GooglerMapItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
populate();
}
@Override
protected OverlayItem createItem(int i) {
return mOverlayItems.get(i);
}
public void addOverlayItem(OverlayItem overlay) {
mOverlayItems.add(overlay);
populate();
}
@Override
public int size() {
return mOverlayItems.size();
}
public void clear(){
mOverlayItems.clear();
populate();
}
@Override
protected boolean onTap(int index) {
// information goes here
OverlayItem item = mOverlayItems.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
如果你想要完全控制并且习惯使用html和javascript,我强烈建议使用开源OpenLayers库.您可以创建一个html页面,将其保存在资产中并在设备上本地运行.您可以创建自己的一组地图图块,甚至可以使用一个单独的jpeg文件,然后在其上"映射"您想要的建筑物,然后使用简单但广泛的OpenLayers API来进行建筑选择和信息显示.它甚至还具有内置的多点触控功能,可用于平移和缩放.适用于移动设备.
您可以在此处查看示例列表.在任何示例上执行简单的视图源将使您清楚地了解它们正在做什么.您还可以查看此示例,该示例在闪烁的地图区域绘制一组图像缩略图,并且可以单击以获取更多详细信息.此示例使用在线提要,但您可以轻松使用本地提要..甚至可以从应用程序传递到webview.
PS.除了积极地将它用于我的项目之外,我与OpenLayers没有任何关系.
归档时间: |
|
查看次数: |
7893 次 |
最近记录: |