Как установить google maps api v3 в приложение?

Ответить
Kroshandowski
Сообщения: 9
Зарегистрирован: 10 дек 2013, 20:21
Контактная информация:

Как установить google maps api v3 в приложение?

Сообщение Kroshandowski » 21 дек 2014, 15:05

Здравствуйте!Как установить google maps api v3 в приложение?В мануале предлагают java+html решение,но это скорее для сайтов.Как быть в случае с android приложением?
Я конечно попробовал "запихать" весь код отображения карты в отдельный файл index.html и его считывать через WebView. Тест на эмуляторе удался и карта загрузилась,но на телефоне при загрузке Activity ничего не появляется.
Может я не правильно "скармливаю" index.html для отображения или ключ не тот сгенерировал. Если на компе открыть index.html через любой браузер то карта загружается,а на телефоне не хочет. Как быть? Если кто устанавливал v3 версию в свои приложения,помогите разобраться.Заранее спасибо.
Ниже привожу код index.html и MapActivity:

index.html

Код: Выделить всё

<!DOCTYPE html>
<html>
  <head>
    <title>Geolocation</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
    <script src="https://maps.googleapis.com/maps/api/js?key=ТУТ МОЙ API КЛЮЧ=SET_TO_TRUE_OR_FALSE""></script>

    <script>
// Note: This example requires that you consent to location sharing when
// prompted by your browser. If you see a blank space instead of the map, this
// is probably because you have denied permission for location sharing.

var map;

function initialize() {
  var mapOptions = {
    zoom: 6
  };
  map = new google.maps.Map(document.getElementById('map-canvas'),
      mapOptions);

  // Try HTML5 geolocation
  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var pos = new google.maps.LatLng(position.coords.latitude,
                                       position.coords.longitude);

      var infowindow = new google.maps.InfoWindow({
        map: map,
        position: pos,
        content: 'Location found using HTML5.'
      });

      map.setCenter(pos);
    }, function() {
      handleNoGeolocation(true);
    });
  } else {
    // Browser doesn't support Geolocation
    handleNoGeolocation(false);
  }
}

function handleNoGeolocation(errorFlag) {
  if (errorFlag) {
    var content = 'Error: The Geolocation service failed.';
  } else {
    var content = 'Error: Your browser doesn\'t support geolocation.';
  }

  var options = {
    map: map,
    position: new google.maps.LatLng(60, 105),
    content: content
  };

  var infowindow = new google.maps.InfoWindow(options);
  map.setCenter(options.position);
}

google.maps.event.addDomListener(window, 'load', initialize);

    </script>
  </head>
  <body>
    <div id="map-canvas"></div>
  </body>
</html>

MapActivity

Код: Выделить всё

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;


public class Map extends Activity {
    WebView webview;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map);
        
        webview = (WebView) findViewById(R.id.webView);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setSupportZoom(true);
        webview.getSettings().setBuiltInZoomControls(true);
        webview.setWebViewClient(new WebViewClient());
        webview.loadUrl("file:///android_asset/index.html");
}
   
}



Ответить