有必要在 Yandex.Map 上用颜色突出显示街道的一部分。这是它应该是什么样子的示例。请告诉我如何实现这个
all_possible's questions
我需要上传文件的名称为 XX-XX-XXXX 格式,其中每个 X 是一个数字。如何进行这样的检查?
通过单击某个按钮(例如,“定位”),应用程序向用户请求必要的权限。因此,他可以接受、拒绝或拒绝并禁止进一步询问。如果选择了后一个选项,则不再出现要求权限的窗口。由于您仍然需要报告缺少权限并提供授予权限的机会,因此在没有必要权限的情况下,我会显示一个我自定义的对话框,其中包含“单击此处转到设置并授予必要权限”之类的文本。” 只是现在,如果用户还没有点击“不再显示”,那么会弹出系统窗口询问权限和我制作的对话框。其实问题是:如何检查用户是否单击了“不再显示”以及是否弹出系统窗口并提出请求?仅当用户没有看到权限的直接请求时才显示您的对话框。还是在这种情况下做得不同?也许您通常可以从系统窗口中删除“不再显示”项?
在移动应用程序中,activity1 具有要填写的字段和一个按钮,通过单击该按钮可以转到 activity2 以选择某些数据。在activity2中接收到的数据必须传输到activity1。我使用 putExtra 执行此操作,但随后在 activity1 中清除所有其他先前填写的字段。有一个想法是让用于确认 activity2 中所选数据的按钮像“返回”按钮 ( onBackPressed();) 一样工作。实际上问题是如何在activity2中进行调用,onBackPressed();同时在activity1中使用putExtra传输数据?还是以其他方式解决了这个问题?
我使用 Yandex 的地理编码器通过坐标获取地址。我得到 json 格式的响应:
{
"response": {
"GeoObjectCollection": {
"metaDataProperty": {
"GeocoderResponseMetaData": {
"Point": {
"pos": "34.366834 53.244996"
},
"request": "34.366834,53.244996",
"results": "10",
"found": "9"
}
},
"featureMember": [
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "exact",
"text": "Россия, Брянск, проспект Ленина, 28",
"kind": "house",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, проспект Ленина, 28",
"postal_code": "241050",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "street",
"name": "проспект Ленина"
},
{
"kind": "house",
"name": "28"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, проспект Ленина, 28",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"Thoroughfare": {
"ThoroughfareName": "проспект Ленина",
"Premise": {
"PremiseNumber": "28",
"PostalCode": {
"PostalCodeNumber": "241050"
}
}
}
}
}
}
}
}
}
},
"name": "проспект Ленина, 28",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.362698 53.242511",
"upperCorner": "34.370908 53.247436"
}
},
"Point": {
"pos": "34.366803 53.244973"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "street",
"text": "Россия, Брянск, проспект Ленина",
"kind": "street",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, проспект Ленина",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "street",
"name": "проспект Ленина"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, проспект Ленина",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"Thoroughfare": {
"ThoroughfareName": "проспект Ленина"
}
}
}
}
}
}
}
},
"name": "проспект Ленина",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.354801 53.235602",
"upperCorner": "34.37628 53.253599"
}
},
"Point": {
"pos": "34.365635 53.244489"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянск, Советский район",
"kind": "district",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск, Советский район",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
},
{
"kind": "district",
"name": "Советский район"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск, Советский район",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск",
"DependentLocality": {
"DependentLocalityName": "Советский район"
}
}
}
}
}
}
}
},
"name": "Советский район",
"description": "Брянск, Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.260119 53.216405",
"upperCorner": "34.400705 53.281744"
}
},
"Point": {
"pos": "34.354101 53.235074"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянск",
"kind": "locality",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянск",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
},
{
"kind": "locality",
"name": "Брянск"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянск",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск",
"Locality": {
"LocalityName": "Брянск"
}
}
}
}
}
}
},
"name": "Брянск",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.191155 53.183819",
"upperCorner": "34.557461 53.374503"
}
},
"Point": {
"pos": "34.363425 53.243562"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, городской округ Брянск",
"kind": "area",
"Address": {
"country_code": "RU",
"formatted": "Россия, городской округ Брянск",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "городской округ Брянск"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, городской округ Брянск",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "городской округ Брянск"
}
}
}
}
}
},
"name": "городской округ Брянск",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "34.191155 53.183819",
"upperCorner": "34.685938 53.374503"
}
},
"Point": {
"pos": "34.367683 53.270469"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянский район",
"kind": "area",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянский район",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
},
{
"kind": "area",
"name": "Брянский район"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянский район",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область",
"SubAdministrativeArea": {
"SubAdministrativeAreaName": "Брянский район"
}
}
}
}
}
},
"name": "Брянский район",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "33.704825 53.062151",
"upperCorner": "34.980891 53.539789"
}
},
"Point": {
"pos": "34.087876 53.300395"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Брянская область",
"kind": "province",
"Address": {
"country_code": "RU",
"formatted": "Россия, Брянская область",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
},
{
"kind": "province",
"name": "Брянская область"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Брянская область",
"CountryNameCode": "RU",
"CountryName": "Россия",
"AdministrativeArea": {
"AdministrativeAreaName": "Брянская область"
}
}
}
}
},
"name": "Брянская область",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "31.241878 51.843729",
"upperCorner": "35.328333 54.034241"
}
},
"Point": {
"pos": "33.422206 52.909198"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия, Центральный федеральный округ",
"kind": "province",
"Address": {
"country_code": "RU",
"formatted": "Россия, Центральный федеральный округ",
"Components": [
{
"kind": "country",
"name": "Россия"
},
{
"kind": "province",
"name": "Центральный федеральный округ"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия, Центральный федеральный округ",
"CountryNameCode": "RU",
"CountryName": "Россия"
}
}
}
},
"name": "Центральный федеральный округ",
"description": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "30.750266 49.556986",
"upperCorner": "47.641729 59.625176"
}
},
"Point": {
"pos": "38.064727 54.87375"
}
}
},
{
"GeoObject": {
"metaDataProperty": {
"GeocoderMetaData": {
"precision": "other",
"text": "Россия",
"kind": "country",
"Address": {
"country_code": "RU",
"formatted": "Россия",
"Components": [
{
"kind": "country",
"name": "Россия"
}
]
},
"AddressDetails": {
"Country": {
"AddressLine": "Россия",
"CountryNameCode": "RU",
"CountryName": "Россия"
}
}
}
},
"name": "Россия",
"boundedBy": {
"Envelope": {
"lowerCorner": "19.484764 41.185996",
"upperCorner": "191.128012 81.886117"
}
},
"Point": {
"pos": "99.505405 61.698657"
}
}
}
]
}
}
}
其中,我只需要一个值(响应 - GeoObjectCollection - featureMember - 0 - GeoObject - metaDataProperty - GeocoderMetaData - text)。您需要使用 Java 来获取它。有人尝试使用 GSON 进行解析,但由于 json 结构相当复杂,有些东西不起作用。告诉我获取这个字符串的最简单的方法,也许你可以不解析就引用它?
我通过以下方式向地图添加标记:
mapView.getMap().getMapObjects().addPlacemark(new Point(54.513553, 36.259944), ImageProvider.fromResource(this, R.drawable.my_geo_icon));
在我需要将标签重新排列到另一个位置之后。我看到两种方法:移动现有标签,或删除现有标签并添加新标签。我找不到如何实现至少一个选项。请帮忙举个例子。
有必要为随后将多个文件发送到远程服务器实现选择。直接向服务器发送文件已经存在(使用Okhttp库),现在需要实现用户对文件的选择。要求:
- 文件数 - 最多 5 个。
- 文件扩展名允许不同(jpeg、png、zip、pdf、视频格式)。
- 您可能需要限制文件大小。
- 实现从选定文件中删除单个文件、向选定文件添加新文件的功能,但总数不超过 5 个。
告诉我在哪里可以了解所有这些任务的实现,请参阅示例。也许有一些库可以简化这个过程。
您需要向服务器发送一个带有数据的 POST 请求,即 3 行和一个图像。我使用 OkHttp 库,这里是代码本身:
static void uploadImage() {
new Thread(new Runnable() {
@Override
public void run() {
try {
final MediaType MEDIA_TYPE_JPEG = MediaType.parse("image/jpeg");
RequestBody req = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("param1", "test1")
.addFormDataPart("param2", "test2")
.addFormDataPart("param3", "test3")
.addFormDataPart("param_img", "IMG_20200903_133732.jpg",
RequestBody.create(MEDIA_TYPE_JPEG, "storage/emulated/0/DCIM/Camera/IMG_20200903_133732.jpg"))
.build();
Request request = new Request.Builder()
.url("https://mysite.ru/test.php")
.post(req)
.build();
OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
Log.d("response", "uploadImage:" + response.body().string());
} catch (UnknownHostException | UnsupportedEncodingException e) {
Log.e("testtest", "Error: " + e.getLocalizedMessage());
} catch (Exception e) {
Log.e("testtest", "Other Error: " + e.getLocalizedMessage());
}
}
}).start();
}
到目前为止,我会立即为手机上的特定图片指定一条特定路径以进行测试。结果,在服务器上,图片以这种形式出现,并没有打开,实际上不是图片:

剩下的数据(字符串)进来,被添加到数据库中,它们没有问题。这是接收的php文件,可能有问题:
<?php
include("config.php");
if(isset($_POST['param1']) && isset($_POST['param2']) && isset($_POST['param3'])){
$test111 = $_POST['param1'];
$test222 = $_POST['param2'];
$test333 = $_POST['param3'];
$uploaddir = '../img_message/';
$uploadfile = $uploaddir . basename($_FILES['param_img']['name']);
move_uploaded_file($_FILES['param_img']['tmp_name'], $uploadfile);
$query = mysqli_query($connection, "INSERT INTO test_table (one, two, three) VALUES ('$test111', '$test222', '$test333')");
}
mysqli_close($connection);
请告诉我可能是我的错误。
我在地图上显示了很多标签,我使用标签圆(Circle)的几何形状。标签是透明的。当穿过几个标记时,它们会相互重叠,在某些时候它们会变得完全不透明。
标签是使用 geoQuery 从 json 视图派生的(由于某种原因,我不能使用 ObjectManager)。
我需要确保在交叉标记时它们不会重叠,但如果它们具有相同的颜色,它们会以某种方式相互融合。但是我有不同颜色的标签,如果不同颜色的标签相交,需要一种颜色与另一种颜色重叠(例如,有一个蓝色和红色的标签,这样红色的相交部分蓝色根本不可见,只有蓝色可见,其余的红色(不与任何东西相交)可见)。
我需要的一个理想示例: https ://geo.minsvyaz.ru
请告诉我如何实施
数据库托管,与站点通信。我想从 Android 应用程序将数据发送到该数据库,以便稍后将其上传到站点。告诉我最简单最方便的方法,这种情况下安全性并不重要。该应用程序是在 Android Studio 中用 Java 编写的。