14

Quello che ho: nativo app Android che utilizzano Android Maps API v2 (libreria nativa)Google Maps Android API v2 in Cina - Mappa di carico sono voluti circa un'ora

Tutto funziona bene a Hong Kong e in Ucraina. I problemi sono arrivati ​​non appena entrati in Cina. Abbiamo i prossimi problemi:

Quello che so intorno alla Cina:

  • Google non è veramente cordiale lì, ma la nostra app non è quella che usa le mappe di google in Cina, quindi il mio problema probabilmente non è nuovo.
  • C'è la possibilità di utilizzare una google maps ospitata localmente in Cina - ditu.google.cn, ma non appena usiamo l'app nativa non c'è un'opzione ora per usare una vista web della mappa invece dell'implementazione nativa (abbiamo un sacco di personalizzazioni)
  • lo so, che meglio non usare HTTPS con le mappe di Google (potete leggere intorno a questo qui: Google Maps Geolocation API for China)

La domanda è:

  • Could in qualche modo miglioriamo il carico di mappa? Potremmo in qualche modo ignorare la fonte di Google Maps per utilizzare un ditu.google.cn?
  • Potremmo in qualche modo disabilitare HTTPS in Map API?
  • Qualsiasi altra soluzione intorno a questo problema, che può essere applicata in base ai servizi di Google. Forse ci sono alcune caratteristiche non documentate?

Ciò che non ci si aspetta come risposta è qualcosa come "Usa Baidu". Conosco Baidu e questa è un'opzione di backup veeerryyy non appena hanno un documento API in cinese.

È un vantaggio aggiungere che l'API di geocodifica basata su ditu.google.cn funziona correttamente.

In attesa, grazie!

risposta

1

Forse non è possibile ignorare la sorgente di riquadri originale. Ma puoi usare TileOverlay per ottenere le mappe da un server esterno.

Esempio di utilizzo:

TileProvider tileProvider = new UrlTileProvider(256, 256) { 

    //... 

    @Override 
    public URL getTileUrl(int x, int y, int zoom) { 

    /* Define the URL pattern for the tile images */ 
    String s = String.format("http://my.image.server/images/%d/%d/%d.png", 
     zoom, x, y); 

    if (!checkTileExists(x, y, zoom)) { 
     return null; 
    } 

    try { 
     return new URL(s); 
    } catch (MalformedURLException e) { 
     throw new AssertionError(e); 
    } 
    } 

    //... 

} 

è possibile sostituire il my.image.server con ditu.google.cn e utilizzare API server esterni per ottenere immagini di piastrelle. In Maps, puoi impostare OnCameraChangeListener, in modo che l'applicazione carichi le tessere dal server esterno quando la mappa esegue lo zoom o il panning.

Per saperne di più: https://developers.google.com/maps/documentation/android/tileoverlay

0

Google non ha ancora una licenza di pubblicazione di mappe in Cina (almeno come le mie ultime informazioni). È possibile che nel prossimo futuro i servizi di Google Map verranno bloccati.

Molti siti Web cinesi, incluso il nostro, utilizzano il JS di Google e le API dei servizi, tra cui l'API di geocodifica di Google. in Cina, Baidu (NASDAQ: BIDU) e Sogou [il motore di ricerca minore, parte di Sohu (NASDAQ: SOHU)] sia fornito mappe online e anche le API,

casa Map API di Baidu è http://dev.baidu.com/wiki/map/in ...

mappa sogou api casa è http://map.sogou.com/api/

in realtà, in Cina, a partire da ora, le API di google maps sono ancora disponibili ora. come da recenti notizie di chinatech.us, Google China ha superato l'ispezione annuale e ha avuto più opportunità di ottenere la licenza di business online in modo che le 3 API siano disponibili e disponibili.

+0

Questa è una notizia interessante. – wf9a5m75