Как установить google maps api v3 в приложение?
Добавлено: 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
MapActivity
Я конечно попробовал "запихать" весь код отображения карты в отдельный файл 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>
Код: Выделить всё
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");
}
}