标签: mapsforge

Java:使用在线位图图块而不是离线渲染器时缩放Mapsforge Map

我使用MapsForge 0.8在我的Android应用程序中显示地图.使用在线图块(只是位图而不是可以在运行时渲染器中调整的矢量数据)时,我的Hi分辨率设备上的地图非常小,我无法读取任何内容.

截图

我想缩放地图,我尝试了以下内容:

mapView.getModel().displayModel.setDefaultUserScaleFactor(2.0f);
Run Code Online (Sandbox Code Playgroud)

和:

mapView.getModel().displayModel.setUserScaleFactor(2.0f);
Run Code Online (Sandbox Code Playgroud)

但它没有改变任何东西.
如何让它显示更大的地图?

更新:

我并不是指放大.我的意思是缩放当前的缩放级别,使其在高分辨率设备上可读.想象一下在一个小型智能手机上面的截图 - 它很小.我甚至无法阅读街道名称.

第二次更新

目前的答案不能回答这个问题.这是关于缩放作为BITMAPS的在线图块 - 而不是如何影响渲染矢量数据.

第三次更新

加入的答案终于解决了这个问题.

java scaling android bitmap mapsforge

28
推荐指数
2
解决办法
1184
查看次数

向Android TextView添加不透明的"阴影"(轮廓)

我有一个TextView在我的活动中,我想添加一个阴影.它应该看起来像OsmAnd(100%不透明):

我想要的是

但它看起来像这样:

是)我有的

您可以看到当前阴影模糊并消失.我想要一个坚实,不透明的阴影.但是怎么样?

我目前的代码是:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/speedTextView"
    android:text="25 km/h"

    android:textSize="24sp"
    android:textStyle="bold"
    android:textColor="#000000"
    android:shadowColor="#ffffff"
    android:shadowDx="0"
    android:shadowDy="0"
    android:shadowRadius="6"
/>
Run Code Online (Sandbox Code Playgroud)

java android drawing textview mapsforge

13
推荐指数
2
解决办法
3369
查看次数

获取点击地图伪造0.5.1 MapView的位置的纬度和经度

我使用地图伪造0.5.1库(api参考)我已遵循所有官方说明但我有以下问题:

我已经附上了一个onTouchListener

(org.mapsforge.map.android.view.MapView)MapView类

但是当我尝试调用方法mapView.getProjection()时,我得到错误"无法解析方法getProjection().即使在许多在线示例中调用该方法,也没有在官方api引用或MapView中.class.org.mapsforge.map.android.view.MapView

 org.mapsforge.map.android.view.MapView mapView;
 mapView.setOnTouchListener(new View.OnTouchListener(){

        @Override
        public boolean onTouch(View v, MotionEvent ev) {
            int actionType = ev.getAction();
            switch (actionType) {
                case MotionEvent.ACTION_DOWN:

                    return false;

                case MotionEvent.ACTION_UP:
                    mapView.getProjection(); // the error is here

                    return true;
                case MotionEvent.ACTION_MOVE:
                    return false;
            }
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用mapsforge lib获取分接点的纬度和经度?难道我做错了什么?如果在点击后没有办法获得坐标,我认为图书馆遗漏了一些非常重要的东西.

谢谢

java android geolocation mapsforge

11
推荐指数
1
解决办法
1275
查看次数

Osmdroid与Mapsforge

我将开发一个新的Android应用程序,过去我开发了一个应用程序,我使用了Mapsforge,但现在我看到了他们的网站,他们自2013年3月起就没有发布...

你建议我使用什么,Osmdroid或Mapsforge?

提前致谢

android openstreetmap osmdroid mapsforge

8
推荐指数
1
解决办法
2032
查看次数

如何在Android上使用Mapsforge修复原生SIGABRT

我正在使用Mapsforge 0.6.1,我可以通过以下简化示例重现该问题,该示例基本上是本教程的副本:https://github.com/mapsforge/mapsforge/blob/master/docs/Getting-Started -Android-App.md

我做了一些小改动以匹配新版本.

package org.test.mapsforgeexample;

import java.io.File;

import org.mapsforge.core.model.LatLong;
import org.mapsforge.map.android.graphics.AndroidGraphicFactory;
import org.mapsforge.map.android.util.AndroidUtil;
import org.mapsforge.map.android.view.MapView;
import org.mapsforge.map.layer.cache.TileCache;
import org.mapsforge.map.layer.renderer.TileRendererLayer;
import org.mapsforge.map.datastore.MapDataStore;
import org.mapsforge.map.reader.MapFile;
import org.mapsforge.map.rendertheme.InternalRenderTheme;

import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;

public class MainActivity extends Activity {

    private static final String MAP_FILE = "berlin.map";

    private MapView mapView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        AndroidGraphicFactory.createInstance(this.getApplication());

        this.mapView = new MapView(this);
        setContentView(this.mapView);

        this.mapView.setClickable(true);
        this.mapView.getMapScaleBar().setVisible(true);
        this.mapView.setBuiltInZoomControls(true);
        this.mapView.getMapZoomControls().setZoomLevelMin((byte) 10);
        this.mapView.getMapZoomControls().setZoomLevelMax((byte) 20);

        TileCache tileCache = AndroidUtil.createTileCache(this, "mapcache",
                mapView.getModel().displayModel.getTileSize(), 1f,
                this.mapView.getModel().frameBufferModel.getOverdrawFactor());

        MapDataStore …
Run Code Online (Sandbox Code Playgroud)

java android mapsforge

5
推荐指数
1
解决办法
831
查看次数

在Android Studio中使用Mapsforge

我需要在Android Studio应用中使用Mapsforge(离线地图).我导入了这些库:

  • mapsforge核-0.4.0.jar
  • mapsforge-MAP-0.4.0.jar
  • mapsforge-地图Android的0.4.0.jar
  • mapsforge地图阅读器 - 0.4.0.jar
  • SVG-Android的0.4.0.jar

我在build.gradle中包含了dependecies:

compile fileTree(dir: 'libs', include: ['*.jar'])
Run Code Online (Sandbox Code Playgroud)

这是代码:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import org.mapsforge.map.android.view.MapView;


public class MapaForgeFragment extends Fragment {

    private MapView mapView;
    private View view;

    public static MapaForgeFragment newInstance() {
        MapaForgeFragment fragment = new MapaForgeFragment();
        Bundle args = new Bundle();
        fragment.setArguments(args);
        return fragment;
    }
    public MapaForgeFragment() {
        // Required empty public constructor
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

android-studio mapsforge

2
推荐指数
1
解决办法
3334
查看次数

org.mapsforge.core.graphics.Bitmap和android.graphics.Bitmap之间的任何关系方法

我是mapforge的新手,想要显示我的自定义标记(从sdcard读取)并在mapforge上显示离线map.problem我面临的是不知道如何将我的android.graphics.Bitmap obj转换为org.mapsforge.core.graphics .Bitmap obj

Bitmap userImg = TrafficBeatHelper.getUserImg(context, userId); // get android.graphics.Bitmap file from sdcard
LatLong userLatLong = TrafficBeatHelper.getLatLong(cache.getSharedPrefValue(SharedPrefContstant.USER_CURRENT_LATITUDE),cache.getSharedPrefValue(SharedPrefContstant.USER_CURRENT_LONGITUDE)); // get user location
//  Marker userImgMarker = new Marker(userLatLong, userImg, 0, 0);
Run Code Online (Sandbox Code Playgroud)

任何人都有任何其他选择,请提前分享txs.

java android bitmap mapsforge

2
推荐指数
1
解决办法
589
查看次数

MapsForge 0.4.0:是否可以实现Marker的onTap事件?

我正在使用MapsForge最新分支(master),我想实现Marker的onTap事件.我认为它可能在0.3.0,但我不能使用0.3.0,因为我在地图上为每个标记使用不同的Drawable.

ArrayList<Monument> monuments = getMonuments(); 

mListOverlay = new ListOverlay();
ArrayList<OverlayItem> markers = new ArrayList<OverlayItem>();          

for(Monument m : monuments){
    GeoPoint gp = new GeoPoint(m.getLat(), m.getLon());
    Marker m = createCustomMarker(R.drawable.marker, gp, p.getNumber()));
    markers.add(m);     
}

mListOverlay.getOverlayItems().addAll(markers);

mMapView.getOverlays().add(mListOverlay);
Run Code Online (Sandbox Code Playgroud)

"createCustomMarker"返回一个标记,该标记使用带有数字的Drawable.

任何人都知道如何轻敲"m"的行为?

记住:分公司高手!不是0.3.0 !!

谢谢

events android click marker mapsforge

1
推荐指数
1
解决办法
2644
查看次数