Ich versuche zu überprüfen, ob das Kartenzentrum in einem Polygon liegt oder nicht. Mein Code für mulitple Polygone auf der Karte zu schaffen, ist dies:Suche nach Latlng innerhalb von Polygon ist nicht präzise
for (int i = 0; i < Constant.arr_zone.size(); i++) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
ArrayList<LatLng> list = new ArrayList<>();
for (int j = 0; j < Constant.arr_zone.get(i).polygon.length; j++) {
list.add(new LatLng(Constant.arr_zone.get(i).polygon[j].geo_x,
Constant.arr_zone.get(i).polygon[j].geo_y));
builder.include(list.get(j));
}
polygonOptions = new PolygonOptions();
polygonOptions.addAll(list);
polygonOptions.strokeColor(R.color.theme_color);
polygonOptions.strokeWidth(2);
polygonOptions.fillColor(Color.parseColor("#33000040"));
Polygon polygon = mMap.addPolygon(polygonOptions);
ltbounds = builder.build();
arr_ltlngbounds.add(ltbounds);
}
Next I Überprüfung mich, ob Kartenmitte innerhalb jedes Polygons ist oder nicht
map.setOnCameraChangeListener(new OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition cameraPosition) {
if (arr_ltlngbounds != null && arr_ltlngbounds.size() > 0) {
for (LatLngBounds l : arr_ltlngbounds) {
if (l.contains(mMap.getCameraPosition().target)) {
snackbar = Snackbar
.make(inflatedView, "Service available here", Snackbar.LENGTH_INDEFINITE)
.setAction("GET", new View.OnClickListener() {
@Override
public void onClick(View view) {
String arr[] = {user_location.latitude + "", user_location.longitude + "", "4"};
new Get_service(activity, A.this, get_service).execute(arr);
}
});
snackbar.show();
break;
}
}
}
}
});
Das ist mein build.gradle nur incase
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
multiDexEnabled true
applicationId "com.aaa.bbb"
minSdkVersion 14
targetSdkVersion 23
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
dependencies {
compile project(':library')
compile 'com.android.support:appcompat-v7:23.1.0'
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:design:23.2.0'
compile 'com.android.support:recyclerview-v7:23.1.0'
compile 'com.newrelic.agent.android:android-agent:5.3.1'
compile 'com.github.bumptech.glide:glide:3.6.1'
compile 'com.android.support:cardview-v7:23.1.0'
compile 'com.github.jaydeepw:poly-picker:v1.0.22'
compile 'com.xgc1986.android:parallaxpagertransformer:1.0.3'
compile 'com.google.code.gson:gson:2.6.2'
compile 'me.dm7.barcodescanner:zxing:1.8.4'
compile 'com.github.castorflex.smoothprogressbar:library:1.0.0'
compile 'com.github.clans:fab:1.6.2'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.maps.android:android-maps-utils:0.4+'
compile('com.google.api-client:google-api-client-android:1.20.0') {
exclude group: 'org.apache.httpcomponents'
}
compile('com.google.apis:google-api-services-drive:v3-rev6-1.20.0') {
exclude group: 'org.apache.httpcomponents'
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "com.newrelic.agent.android:agent-gradle-plugin:5.3.1"
}
}
repositories {
mavenCentral()
// for downloading polypicker dependency cwac-camera
maven {
url "https://repo.commonsware.com.s3.amazonaws.com"
}
// for downloading poly-picker now we are using jitpack.
// Goodbye Maven Central
maven {
url "https://jitpack.io"
}
}
apply plugin: 'android'
apply plugin: 'newrelic'
dependencies {
compile 'com.android.support:support-v4:22.2.1'
}
android {
useLibrary 'org.apache.http.legacy'
}
Das Problem mit dieser Implementierung ist, es zeigt immer noch snackbar (dass latlng ist innerhalb Grenzen), auch wenn latlng außerhalb Grenzen bis zu einem bestimmten Niveau wie es gibt einige Pufferbereich, wo es wi ist Ich erkenne immer noch die Länge. Ich will, dass es genau ist. Wie kann ich das korrigieren?
Während Bibliothek einschließlich ich bin immer Fehler: Fehler: Ausführung für die Task fehlgeschlagen ': needToPark: processDebugResources'. > Fehler: mehr als eine Bibliothek mit Paketname 'com.google.maps.android' Sie können diesen Fehler vorübergehend mit android.enforceUniquePackageName = false deaktivieren Dies ist jedoch vorübergehend und wird in 1.0 erzwungen werden – Victor
Wie sind Sie einschließlich die Bibliothek? Um es zu deinem Projekt hinzuzufügen, füge einfach 'compile 'com.google.maps.android: android-maps-utils: 0.4 +'' in den 'dependencies' Abschnitt in deinem' build.gradle' hinzu. – antonio
Das habe ich gemacht. Immer noch das gleiche Problem. Ich versuche herauszufinden, warum ich diesen Fehler bekomme. Hinzugefügt kompiliert 'com.google.maps.android:android-maps-utils..4+' in build.gradle – Victor