dapriett / nativescript-google-maps-sdk

Cross Platform Google Maps SDK for Nativescript
MIT License
244 stars 169 forks source link

NS8 infoWindowTemplate is not working #480

Open Woongsik opened 2 years ago

Woongsik commented 2 years ago

Hi, I am using nativescript -vue and like to use custom info window. As you mentioned it is not working with NS7 or 8 and tried to have alternatives you suggested.

in main.ts import { MapView } from "nativescript-google-maps-sdk"; Vue.registerElement('MapView', () =>MapView);

in component,

 <GridLayout>
       <MapView mapReady="onMapReady">
            <!-- Default Info Window Template -->               
            <MapView.infoWindowTemplate>
                <StackLayout orientation="vertical" width="200" height="150" >
                    <Label text="{{title}}" className="title" width="125"   />
                    <Label text="{{snippet}}" className="snippet" width="125"   />
                    <Label text="{{'LAT: ' + position.latitude}}" className="infoWindowCoordinates"  />
                    <Label text="{{'LON: ' + position.longitude}}" className="infoWindowCoordinates"  />
                </StackLayout>
            </MapView.infoWindowTemplate>
            <!-- Keyed Info Window Templates -->   
            <MapView.infoWindowTemplates>
                <template key="testWindow">
                    <StackLayout orientation="vertical" width="160" height="160" >
                        <Image src="res://icon" stretch="fill"  height="100" width="100" className="infoWindowImage" />
                        <Label text="Let's Begin!" className="title" />
                    </StackLayout>
                </template>
            </MapView.infoWindowTemplates>
        </MapView>
  </GridLayout>

If I use then it became a blank and can't do anything. But with old way mapView.infoWidowTemplate = "Some string as template", the error comes.

Error: Parsing XML at 1:2 System.err: > Module 'GridLayout' not found for element 'GridLayout'. System.err: > com.tns.NativeScriptException: Failed to find module: "@nativescript/core/ui", relative to: app/tns_modules/

Any updates or any workaround here?

Woongsik commented 2 years ago

If somebody have a suffer from this, try it in main.ts as work around !! You still can use mapView.infoWindowTemplate = "some string template" like NS6

In main.ts

// From webpack, DefinePlugins declare let global.TNS_WEBPACK: string;

if (global.TNS_WEBPACK) { require("@nativescript/core/bundle-entry-points"); const context = require.context("~/", true, /(page|fragment).(xml|css|js|ts|scss|less|sass)$/); global.registerWebpackModules(context); }