在GoogleMap android API v2上,如何获取当前地图缩放级别?在API v1上,曾经有过float MapView.getZoomLevel(),但似乎没有类似于我正在使用的API版本,并且谷歌推荐.
我曾想过使用类变量通过缩放按钮单击侦听器手动保存缩放级别,但这并不能解决夹点式缩放的问题.
为什么我需要当前的缩放级别?我正在将地图范围限制为某个矩形,并希望任何可能会离开此矩形的移动都会反弹.此动画要求我使用缩放级别,如果没有缩放级别,则使用默认的最大缩放级别.我真正想要的是保持移动尝试前使用的缩放级别.
protected void recenterMap() {
map.getMinZoomLevel();
if(MAP_BOUNDS.contains(map.getCameraPosition().target) == false) {
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MAP_CENTER)
.zoom(current_zoom)
.build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
} else {
MAP_CENTER = map.getCameraPosition().target;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,变量current_zoom是我需要定义的.
我正在尝试开发一种拍卖类型系统,其中客户下订单,然后不同的商店可以为该订单提供价格.
该系统的一个有趣的部分是,当最初创建订单时,可用的商店将有60秒来提供他们各自的报价.当第一家商店提出要约时,"拍卖"现在只有接下来的20秒才能让其他商店自己出价.如果他们确实提出了另一个报价,在这个较小的分配时间内,那么这20秒就会刷新.只要有足够的时间,优惠可以继续收到,不能超过给定的最初60秒.
class Order(models.Model):
customer = models.ForeignKey(Customer)
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now_add=True)
total = models.FloatField(default=0)
status = models.IntegerField(default=0)
delivery_address = models.ForeignKey(DeliveryAddress)
store = models.ForeignKey(Store, null=True, blank=True, related_name='orders', on_delete=models.CASCADE)
credit_card = models.ForeignKey(CreditCard, null=True, blank=True, related_name='orders')
class OrderOffer(models.Model):
store = models.ForeignKey(Store, related_name="offers", on_delete=models.CASCADE)
order = models.ForeignKey(Order, related_name="offers", on_delete=models.CASCADE)
create_time = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
除了这些要求之外,我还想在新的优惠实时到达时更新客户.为此,我正在使用django-channelsWebSockets的实现.
我有以下consumers.py文件:
from channels.generic.websockets import WebsocketConsumer
from threading import Timer
from api.models import Order, OrderOffer
from django.db.models.signals import post_save
from django.dispatch import receiver
class OrderConsumer(WebsocketConsumer):
def …Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个虚拟光栅(VRT文件),它连接了大量的GeoTIFF栅格.
我gdalbuildvrt在Windows 7环境中使用命令.以下是使用的语法.
gdalbuildvrt -input_file_list C:\listing.txt -srcnodata 0 -resolution average O:\mosaicB.vrt
Run Code Online (Sandbox Code Playgroud)
该文件listing.txt包含我要处理的TIF文件的完整路径名.mosaicB.vrt是输出文件.
前几行listing.txt是:
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069632FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069633FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069634FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069635FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069636FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069638FN.tif
Run Code Online (Sandbox Code Playgroud)
该命令运行了很长一段时间,但最终,我收到警告,最后是一个空的输出文件.我确实得到以下错误,这些错误无限期重复
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087496FN.tif' not recognised as a supported file format.
Warning 1: Can't open C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087496FN.tif. Skipping it
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087497FN.tif' not recognised as a supported file format.
Warning 1: Can't open C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087497FN.tif. Skipping it
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087498FN.tif' not recognised as a supported file format.
Run Code Online (Sandbox Code Playgroud)
不知道从哪里开始.我有管理员权限,所以这不是权限问题.这些是16位GeoTIFF文件,可在所有GIS程序中读取.我很感激这里的任何帮助.
想象一下,您有一个文件example.nc,其风力数据定义在90N,90S,180E,180W区域.无论如何我可以在linux中使用简单的nc类型命令(不用在matlab/python中提取数据来重写),裁剪此文件以包含一个较小的区域,上面的子集.
例如,30N,10S,60E和30W.
我在Django中有以下模型:
from django.db import models
class Team(models.Model):
name = models.CharField(max_length=200)
class Match(models.Model):
team_home = models.ForeignKey(Team)
team_visitors = models.ForeignKey(Team)
league = models.CharField(max_length=200)
date_played = models.DateField()
Run Code Online (Sandbox Code Playgroud)
我们的想法是能够拥有一个"匹配"对象,该对象有两个团队参与某场比赛的比赛.一支球队自己打球真是太奇怪了.我怎么能保证team_home不等于team_visitors?
我是 Django 新手,正在尝试创建一个后端 API 供 iOS 客户端使用。目前我正在使用curl 测试我的API 访问。
我已使用以下方法成功生成了访问令牌:
curl -X POST -d "grant_type=password&username=example_user&password=example_password" http://clientID:clientSecret@localhost:8000/o/token/
Run Code Online (Sandbox Code Playgroud)
产生以下响应 -
{
"access_token": "oAyNlYuGVk1Sr8oO1EsGnLwOTL7hAY",
"scope": "write read",
"expires_in": 36000,
"token_type": "Bearer",
"refresh_token": "pxd5rXzz1zZIKEtmqPgE608a4H9E5m"
}
Run Code Online (Sandbox Code Playgroud)
然后,我使用访问令牌尝试访问以下类视图:
from django.http import JsonResponse
from oauth2_provider.views.generic import ProtectedResourceView
from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator
class post_test(ProtectedResourceView):
def get(self, request, *args, **kwargs):
print(request.user)
return JsonResponse({'Message': "You used a GET request"})
def post(self, request, *args, **kwargs):
print(request.user)
return JsonResponse({'Message': 'You used a POST request'})
@method_decorator(csrf_exempt)
def dispatch(self, *args, …Run Code Online (Sandbox Code Playgroud) 首先,抱歉问了这么长的问题,我希望你们中的一些人对此有耐心。
我正在遵循本指南,使用 Daphne 部署 Django 频道,因此我可以运行一些实时应用程序(使用 WebSockets)。如果没有 nginx,并从命令行运行工作程序 (python manage.py runworker) 和接口 (daphne),我可以访问正确的频道使用者类,如下面的日志所示(这些是从 javascript 客户端触发的) :
2017-10-09 21:10:35,210 - DEBUG - worker - Got message on websocket.connect (reply daphne.response.CYeWgnNQoY!mwuQrazQtv)
2017-10-09 21:10:35,211 - DEBUG - runworker - websocket.connect
2017-10-09 21:10:35,211 - DEBUG - worker - Dispatching message on websocket.connect to api.consumers.OrderConsumer
2017-10-09 21:10:48,132 - DEBUG - worker - Got message on websocket.receive (reply daphne.response.CYeWgnNQoY!mwuQrazQtv)
2017-10-09 21:10:48,132 - DEBUG - runworker - websocket.receive
2017-10-09 …Run Code Online (Sandbox Code Playgroud)
我正在使用Android谷歌地图应用程序,我遇到地图标记问题.
这个问题可能有一个简单的解决方案,但在搜索之后,我只找到了如何使用按钮添加标记的链接.我想要的是不同的:我想要一个标记,其各自的对话框有一个按钮.
有人做过类似的事吗?
我很乐意从第二只眼睛那里得到一些帮助,因为我一直在努力找出我的代码有什么问题.
在Eclipse IDE中,我试图实现一个谷歌地图的活动,从资产的文件夹(文件读取seaship MMSI码/assets/mmsi.txt),并增加了地图标记,以它们各自的位置.我能够使用BufferedReader该类从该文件中读取,但是在String使用该Double.parseDouble函数将结果行转换为double 时遇到问题.
LogCat检测到以下问题.
01-23 17:59:11.672: E/AndroidRuntime(18242): FATAL EXCEPTION: main
01-23 17:59:11.672: E/AndroidRuntime(18242): java.lang.RuntimeException: Unable to resume activity {com.aquamet.saramap/com.aquamet.saramap.MainActivity}: java.lang.NullPointerException
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3128)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3143)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2684)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.os.Handler.dispatchMessage(Handler.java:99)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.os.Looper.loop(Looper.java:123)
01-23 17:59:11.672: E/AndroidRuntime(18242): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-23 17:59:11.672: E/AndroidRuntime(18242): at java.lang.reflect.Method.invokeNative(Native Method)
01-23 17:59:11.672: E/AndroidRuntime(18242): at …Run Code Online (Sandbox Code Playgroud) 我在UBUNTU 12.04.
我有一个shell脚本,记录某些进程的输出.记录的进程会根据调用日志记录脚本的父shell脚本而更改.我想将此日志记录的输出写入磁盘上的文件,但是在命名文件时遇到问题.
我很乐意根据父脚本自己的名字来命名.不幸的是,我完全不知道如何从脚本中获取该名称.我想最好的方法是提取父PID($PPID),然后使用它来查找脚本名称,但我也不知道如何做到这一点.
我正在尝试编译WRF包,它主要是用fortran编写的.
该软件包中的大多数文件都有一个前导码,使用C风格的"/*...*/"注释.不幸的是,在编译时,我经常收到这些错误:
/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
1
Error: Invalid character in name at (1)
../dyn_em/module_big_step_utilities_em.f90:2.3:
Run Code Online (Sandbox Code Playgroud)
我相信我的gfortran版本根本不理解这些类型的评论,并且失败了.我发现这很奇怪,因为我在Red Hat 7上使用"yum install"下载了编译器.
有人可以赐教吗?