2012-05-15 2 views
0

Я хочу добавить карту в свой андроид, я не могу расширять MapActivity, потому что карта находится на вкладке, и она расширяет фрагмент.map in webview add marker

Так я использую WebView, я последовал этот код:

https://developers.google.com/maps/articles/android_v3

проблема, когда я пытаюсь добавить маркер в HTML файл у меня есть:

function createMarker(lat, lng){ 
var latlng = new google.maps.LatLng(lat, lng);   
var marker = new google.maps.Marker({ 
    position: latlng, 
    map: map 
}); 

return marker 

Я думаю, проблема заключается в «карте», потому что я не знаю, как получить доступ к этому.

+0

Я нашел решение, я создал маркер, но я не добавил его к карте. Спасибо!! – user1256477

ответ

3

Сначала вы должны сделать создать другой класс, как это:

public class Exchanger extends FragmentMapActivity { 

    public static MapView mapView; 

    @Override 
    protected boolean isRouteDisplayed() { 
     return false; 
    } 

} 

затем в фрагмент, который вы называете mapview с именем класса, а затем добавьте маркер на карту

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    mMapView = Exchanger.mapView; 
+0

его очень полезно для меня .... – kyogs

+0

@yogeshkamaliya - thank u –

0

Вы не можете распространять: MapActivity, но можете использовать LocationListener. Таким образом, вы получаете вызов метода onLocationChanged. В этом методе вы можете получить GeoPoint

geoPoint = new GeoPoint((int) (location.getLatitude() * 1E6) , (int) (location.getLongitude() * 1E6)); 

Тогда вы можете создать свой собственный класс, который расширяет класс Overlay. Там вы получите вызов метода draw. В этом методе вы можете создавать свои собственные очки. Пример кода ниже ...

 Point screenPoints = new Point(); 
     mapView.getProjection().toPixels(geoPoint, screenPoints); 

     Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pushpin); 

     canvas.drawBitmap(bitmap, screenPoints.x, screenPoints.y, null); 

Я надеюсь, что это поможет.

0

Существует способ использования MapActivity внутри фрагмента. Это небольшой взлом с фрагментом, который использует LocalActivityManager для создания Activity и отображения его внутри фрагмента.

Для получения дополнительной информации об этом см этот вопрос: MapView in a Fragment (Honeycomb)

Это не очень хорошее решение, но это единственный способ показать Android Maps внутри фрагмента. Это позволит вам использовать правильные API для обработки MapItems. Это также не самая приятная часть Android для использования, но быстрее будет разрабатывать решение для веб-просмотра и даст пользователям более удобную юзабилити.