현재 구글 api v3를 연동중입니다.
샘플로 기본 map을 불러오고 그 이후에 클릭이벤트로 함수를 이용한 이벤트도 처리했는데
map을 불러옴과 동시에 이벤트를 주려니 되질 않네요.
HTML의 함수는 아래에 기재를 해놓았고.. 구글에서 제공하는 기본적인 맵 뷰와 센터로 이동하는 함수를 짜본 것입니다.
html, javascript를 별도로 공부해본적이 없어 기본적으로만 작성해보았습니다.
현재는 메인 호출 시 initialize를 호출해서 기본 맵을 보여주고.. 앱에서 버튼을 만들어 그 버튼을 클릭했을 때
wv_map.loadUrl("javascript:CenterMapView('" + lat + "','" + lng + "')");
다음과 같이 이벤트를 줘서 맵의 중앙을 갱신합니다.
하고자 하는 것은.. 기본적으로 메인 호출 시 바로 맵이 해당 lat 과 lng로 보여주기를 하려는데
한번에 되지를 않네요.
자바스크립트를 알면 아주 기본적일 문제겠지요..
webview와 자바스크립트 연동을 많이 알아보고 여기까지 왔는데 막상 개발에 직접 뛰어들려니 살붙이는게 어렵습니다.
조언을 구합니다.
현재는 메인액티비티 호출 시
v_map.loadUrl("file:///android_asset/clickmarker.html");
wv_map.getSettings().setJavaScriptEnabled(true);
를 하고
버튼 클릭했을 시
wv_map.loadUrl("javascript:CenterMapView('" + lat + "','" + lng + "')"); 를 실행합니다.
하고자 하는 것은..
v_map.loadUrl("file:///android_asset/clickmarker.html"); 부분에서 바로
wv_map.loadUrl("javascript:CenterMapView('" + lat + "','" + lng + "')"); 이와 같이 되기를 하려합니다..
function initialize() {
var mapOptions = {
zoom : 8,
center : new google.maps.LatLng(-25.363882, 131.044922)
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
google.maps.event.addListener(map, 'click', function(e) {
placeMarker(e.latLng, map);
});
}
function CenterMapView(latitude, longitude) { // 앱에서 받은 위경도로 센터이동
var mapOptions = {
zoom : 12,
center : new google.maps.LatLng(latitude, longitude)
};
var map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
window.android.setMessage("받은 위도 : " + latitude); // html 에서 앱으로 메시지 전송 (앱에서는 Handler를 이용해 받는다.)
}