首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在OpenStreetMap中添加气球?

如何在OpenStreetMap中添加气球?
EN

Stack Overflow用户
提问于 2012-11-30 15:34:26
回答 2查看 2.1K关注 0票数 0

如何将Google Maps上的气球(如显示的here)添加到OpenStreetMap中?下面是我的OpenStreetMap代码:

代码语言:javascript
运行
复制
import org.osmdroid.DefaultResourceProxyImpl;
import org.osmdroid.ResourceProxy;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.MapController;
import org.osmdroid.views.MapView;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;

public class MainActivity extends Activity {

MyItemizedOverlay myItemizedOverlay = null;
  private MapController myMapController;

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    MapView mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);
    myMapController = mapView.getController();
    myMapController.setZoom(16);


    Drawable marker=getResources().getDrawable(android.R.drawable.star_big_on);
    int markerWidth = marker.getIntrinsicWidth();
    int markerHeight = marker.getIntrinsicHeight();
    marker.setBounds(0, markerHeight, markerWidth, 0);

    ResourceProxy resourceProxy = new   
   DefaultResourceProxyImpl(getApplicationContext());

    myItemizedOverlay = new MyItemizedOverlay(marker, resourceProxy);
    mapView.getOverlays().add(myItemizedOverlay);

    GeoPoint myPoint1 = new GeoPoint(24.893379000000000000, 67.028060900000010000);
    myItemizedOverlay.addItem(myPoint1, "myPoint1", "myPoint1");
    GeoPoint myPoint2 = new GeoPoint(24.824796300000000000, 67.031565699999990000);
    myItemizedOverlay.addItem(myPoint2, "myPoint2", "myPoint2");


  } 

}


import java.util.ArrayList;

import org.osmdroid.ResourceProxy;
import org.osmdroid.api.IMapView;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.overlay.ItemizedOverlay;
import org.osmdroid.views.overlay.OverlayItem;

import android.graphics.Point;
import android.graphics.drawable.Drawable;

public class MyItemizedOverlay extends ItemizedOverlay<OverlayItem> {

    private ArrayList<OverlayItem> overlayItemList = new ArrayList<OverlayItem>();

    public MyItemizedOverlay(Drawable pDefaultMarker,
       ResourceProxy pResourceProxy) {
     super(pDefaultMarker, pResourceProxy);
       // TODO Auto-generated constructor stub
     }

     public void addItem(GeoPoint p, String title, String snippet){
        OverlayItem newItem = new OverlayItem(title, snippet, p);
        overlayItemList.add(newItem);
        populate(); 
     }

     @Override
     public boolean onSnapToItem(int arg0, int arg1, Point arg2, IMapView arg3) {
       // TODO Auto-generated method stub
       return false;
     }

     @Override
     protected OverlayItem createItem(int arg0) {
       // TODO Auto-generated method stub
       return overlayItemList.get(arg0);
     }

     @Override
     public int size() {
       // TODO Auto-generated method stub
       return overlayItemList.size();
     }

}
EN

回答 2

Stack Overflow用户

发布于 2013-08-02 22:59:20

我也有同样的问题,现在我找到了一个方法:

在此处下载新的osmbonuspack:添加此代码:ArrayList overlayItemArray =

  • ArrayList();ExtendedOverlayItem ExtendedOverlayItem=

  • ExtendedOverlayItem(“GeoPoint,"Description,new GeoPoint(Double

  • ,Double经度),this);//创建一个带有气球的图层ItemizedOverlayWithBubble poiMarkers = new ItemizedOverlayWithBubble( this,overlayItemArray,mapView,new CustomMapInfoWindow(mapView));//添加层标题并创建一个名为CustomMapInfoWindow:的类

import org.osmdroid.bonuspack.overlays.DefaultInfoWindow;import org.osmdroid.bonuspack.overlays.ExtendedOverlayItem;import org.osmdroid.views.MapView;public CustomMapInfoWindow扩展DefaultInfoWindow { public CustomMapInfoWindow(MapView mapView) { super(R.layout.bonuspack_bubble,mapView);} @Override public void (ExtendedOverlayItem item) { super.onOpen(item);}}

票数 2
EN

Stack Overflow用户

发布于 2013-07-25 21:26:12

您应该看看osmbonuspack库,它是osmdroid的附加组件。它包括一个将显示弹出气球的覆盖:

https://code.google.com/p/osmbonuspack/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13640845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档