我无法将从Internet下载的图像显示为注释.我正在实现以下代码和Picasso库.但是,如果我使用本地图像,它的工作原理.在此先感谢您的帮助.
private void createAnnotation(int id, double lat, double lon, String caption, String photoUrl) {
SKAnnotation annotation = new SKAnnotation(id);
SKCoordinate coordinate = new SKCoordinate(lat, lon);
annotation.setLocation(coordinate);
annotation.setMininumZoomLevel(5);
SKAnnotationView annotationView = new SKAnnotationView();
View customView =
(LinearLayout) ((LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(
R.layout.annotation_photo_and_text, null, false);
// If width and height of the view are not power of 2 the actual size of the image will be the next power of 2 of max(width,height).
//annotationView.setView(findViewById(R.id.customView));
TextView tvCaption = (TextView) customView.findViewById(R.id.annotation_photo_caption);
tvCaption.setText(caption);
ImageView ivPhoto = (ImageView) …
Run Code Online (Sandbox Code Playgroud) 我正在尝试用Skobbler建立一个新的项目.我已经集成了SKMaps.jar并将其放入buildpath中.我正在使用带有gradl的AndroidStudio.
现在的问题是:我打电话的那一刻
SKMaps.getInstance().initializeSKMaps(this, initMapSettings, getString(R.string.skobbler_api_key));
它引发了一个例外
android.view.InflateException:二进制XML文件行#44:错误膨胀类com.skobbler.ngx.map.SKMapViewHolder
和
无法从加载器dalvik.system.PathClassLoader加载ngnative [DexPathList [[zip文件"/data/app/de.aeins.theswap.swap-1.apk"],nativeLibraryDirectories=[/data/app-lib/de. aeins.theswap.swap-1,/ vendor/lib,/ system/lib]]]:findLibrary返回null
我在我的项目根目录中有一个lib文件夹,在单独的文件夹中有SKMaps.jar和3个libngnative.so文件.
知道出了什么问题吗?
我有一些代码,它添加了一个自定义注释标注视图,只要在我的Skobbler mapview中选择了注释,就会显示该视图.
@Override
public void onAnnotationSelected(final SKAnnotation annotation) {
...
mapPopup = mapHolder.getCalloutView();
// set the callout view’s background color
mapPopup.setViewColor(Color.WHITE);
View view = getLayoutInflater().inflate(R.layout.map_callout, null);
...
mapPopup.setCustomView(view);
// setting 2nd parameter to 'true' will cause tail to be displayed
mapPopup.showAtLocation(annotation.getLocation(), true);
...
}
Run Code Online (Sandbox Code Playgroud)
我还在showAtLocation()
通话中请求使用"tail"imageview显示标注视图.但是,当我在应用程序中测试时,我看到尾部出现在map_surface_holder
RelativeLayout容器的顶部,而不是显示callout弹出视图的FrameLayout容器的底部.
当我平移地图时,我可以看到尾部视图相对于标注视图的移动向左和向右移动,但它仍然与map_surface_holder容器的顶部对齐,从不向上或向下移动.
我是否需要在某处添加一些代码以使尾部图像视图知道它应该放置在RelativeLayout容器的y轴方向的哪个位置?
我确实尝试添加一个调用来mapPopup.setVerticalOffset(offset)
查看是否有任何效果,但尾部图像仍然锁定在屏幕顶部.
我在自定义标注视图和Skobbler提供的默认视图之间可以看到的另一个区别是标准视图是RelativeLayout容器,而我的实现是FrameLayout.但是,我不确定它是否重要,因为这里的Tail ImageView被添加到我的标注视图的父级,而不是作为孩子.
提前感谢您对此事的任何帮助,如果有任何其他细节会有所帮助,请告诉我.
谢谢!
我正在制作一个使用SKMap(Skobbler)的iOS应用程序.当SKMap打开时,我的应用会占用大量内存.当我移动到应用程序的其他页面时,更多内容不会释放内存.
我在viewWillDisappear方法中放了一些代码来释放SKMap的内存,
[[SKRoutingService sharedInstance].mapView clearAllAnnotations];
[SKRoutingService sharedInstance].routingDelegate = nil;
[SKRoutingService sharedInstance].navigationDelegate=nil;
[[AudioService sharedInstance]cancel];
[[SKRoutingService sharedInstance]stopNavigation];
[[SKRoutingService sharedInstance]clearCurrentRoutes];
[[SKRoutingService sharedInstance]clearAllRoutesFromCache];
[SKRoutingService sharedInstance].mapView = nil;
//self.mapView is SKMap
self.mapView.settings.displayMode = SKMapDisplayMode2D;
self.mapView.delegate=nil;
[self.mapView removeFromSuperview];
self.mapView=nil;
Run Code Online (Sandbox Code Playgroud)
如果您有任何解决方案来释放内存,请帮助我.
我正在尝试将swift框架集成到我的项目中:http: //developer.skobbler.com/download/SKMaps_iOS_2.4.0_withDemo_Swift.zip
当我尝试集成为嵌入式二进制时,xcode无法对代码进行编码并告诉我"代码签名失败,退出代码为1".
CodeSign /Users/k1x/Library/Developer/Xcode/DerivedData/TestMaps-dubiwcafqgeplbabdrqpjtokouxq/Build/Products/Debug-iphoneos/TestMaps.app/Frameworks/SKMaps.framework
cd "/Users/k1x/Workspace iOS/SwitchMaps"
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
Signing Identity: "iPhone Developer"
/usr/bin/codesign --force --sign 56131F60BE8DA3BA4F04CBF6717C75951E93E4D6 --preserve-metadata=identifier,entitlements,resource-rules /Users/k1x/Library/Developer/Xcode/DerivedData/TestMaps-dubiwcafqgeplbabdrqpjtokouxq/Build/Products/Debug-iphoneos/TestMaps.app/Frameworks/SKMaps.framework
Warning: usage of --preserve-metadata with option "resource-rules" (deprecated in Mac OS X >= 10.10)!
/Users/k1x/Library/Developer/Xcode/DerivedData/TestMaps-dubiwcafqgeplbabdrqpjtokouxq/Build/Products/Debug-iphoneos/TestMaps.app/Frameworks/SKMaps.framework: invalid resource specification rule(s)
Command /usr/bin/codesign failed with exit code 1
Run Code Online (Sandbox Code Playgroud)
我试图将框架放在"链接框架和二进制文件"部分中.但我有以下输出:
dyld: Library not loaded: @rpath/SKMaps.framework/SKMaps
Referenced from: /private/var/mobile/Containers/Bundle/Application/B3686F36-2120-4007-97AB-B2D3B423C0A0/TestMaps.app/TestMaps
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
我用Google搜索并找到了此问题的其他帖子,但他们没有回答我的问题.万一它的Objective C版本的一切正常:http: //developer.skobbler.com/download/SKMaps_iOS_2.4.0_withDemo.zip
我正在使用 SKobbler 实现自定义逐向导航。我有时会收到一条消息“无法计算路线”。但是,源坐标和目标坐标是正确的。我在谷歌地图中尝试了相同的坐标。它为我提供了路线。我不知道在 SKobbler 中计算路线有什么问题。请给我一些建议来摆脱这个问题。
我无法找到一种方法来制作我的应用程序,目前正在实施SKmaps以显示路线,显示路线并像汽车导航仪一样遵循路线.
这是我的"路线加载"方法.希望我没有错过任何东西.
@Override
public void onAllRoutesCompleted() {
SKNavigationSettings navigationSettings = new SKNavigationSettings();
navigationSettings.setNavigationType(SKNavigationSettings.SKNavigationType.REAL);
navigationSettings.setNavigationMode(SKNavigationSettings.SKNavigationMode.CAR);
navigationSettings.setCcpAsCurrentPosition(true);
navigationSettings.setFcdEnabled(true);
SKNavigationManager navigationManager = SKNavigationManager.getInstance();
navigationManager.setMapView(mapView);
navigationManager.setNavigationListener(MainActivity.this);
navigationManager.startNavigation(navigationSettings);
}
Run Code Online (Sandbox Code Playgroud) Skobbler
不支持x64位处理器。
是否可以修复x86位库以在x64位设备上工作?
2-02 14:55:35.171 8818-8840/? E/AndroidRuntime: FATAL EXCEPTION: Thread-3042
12-02 14:55:35.171 8818-8840/? E/AndroidRuntime: Process: am.ggtaxi.main.ggdriver, PID: 8818
12-02 14:55:35.171 8818-8840/? E/AndroidRuntime: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/am.ggtaxi.main.ggdriver-1/base.apk"],nativeLibraryDirectories=[/data/app/am.ggtaxi.main.ggdriver-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libngnative.so"
12-02 14:55:35.171 8818-8840/? E/AndroidRuntime: at java.lang.Runtime.loadLibrary(Runtime.java:366)
12-02 14:55:35.171 8818-8840/? E/AndroidRuntime: at java.lang.System.loadLibrary(System.java:988)
12-02 14:55:35.171 8818-8840/? E/AndroidRuntime: at com.skobbler.ngx.SKMaps.<clinit>(SourceFile:59)
Run Code Online (Sandbox Code Playgroud) 我目前正在Android应用程序中使用Skobbler SDK来处理映射和逐向导向任务.出现的一个问题是希望改变从SDK发出音频建议的频率,这样我们就不会有太多的指令被一个接一个地发出.
我找到了另一个问题的答案,这个问题解释了修改advice_places.adv
我能够在SDK提供的SKMaps.zip
文件中找到的文件的必要性.
我遇到的问题似乎与我在完成advice_places.adv
文件更改后重新存档zip文件有关.我正在使用Mac,似乎无论我是否使用内置的"压缩..."上下文菜单选项,或者如果我通过命令行执行zip操作,类似于:
zip -vr SKMaps.zip SKMaps/ -x "*.DS_Store"; chmod +x SKMaps.zip
Run Code Online (Sandbox Code Playgroud)
在Skobbler SDK地图初始化过程中,如果没有它崩溃,我似乎仍然无法加载我的应用程序.
我已经将问题缩小到与zip/unzip相关的问题,因为我可以重新创建崩溃,即使我不修改SKMaps.zip的任何内容但只解压缩然后重新压缩.
这是我的应用程序崩溃时看到的日志转储.
SKMaps D SKMapViewHolder----@onResume
D SKMapSurfaceView----@onResume
D SKMapSurfaceView----@onResume preserve GL context is TRUE
WindowManager V Adding window Window{278f3a43 u0 com.company.mymapapp/com.company.mymapapp.activities.MainActivity} at 23 of 32 (before Window{246caca8 u0 SurfaceView})
V Adding window Window{1b0d49f9 u0 SurfaceView} at 23 of 33 (before Window{278f3a43 u0 com.company.mymapapp/com.company.mymapapp.activities.MainActivity})
SKMaps D MapRenderer----@onSurfaceCreated
D MapRenderer----@onSurfaceCreated LinInitialized = true
D MapRenderer---- @initGLView
SkobblerNG …
Run Code Online (Sandbox Code Playgroud)