6

मैं GoogleMap API ('कोणीय-google-maps' जेएस पैकेज) का उपयोग कर रहा हूं और मेरे पास बहुत अजीब व्यवहार है।Google मानचित्र दूसरी बार लोड नहीं होता है - AngularJS

पहली बार मैं इसे लोड, मैं पूरा नक्शा लोड मिलता है, यहाँ की तरह: enter image description here

तब मैं संवाद बंद करें और इसे फिर से खोलने, मैं इस देखें: enter image description here

ध्यान रखें, कि मानचित्र किसी अन्य संवाद के शीर्ष पर एक संवाद के रूप में प्रदर्शित होता है।

कोई विचार?

उत्तर

3

आपको मानचित्र को दोबारा शुरू करना होगा। आप निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

google.maps.event.trigger(map, 'resize'); 

इससे आपकी समस्या को ठीक करने के लिए मानचित्र रीफ्रेश कर देगा।

5

यदि आप कोणीय Google मानचित्र मॉड्यूल का उपयोग कर रहे हैं तो आपको googlemap तत्व में रीफ्रेश विशेषता जोड़नी होगी।

के रूप में यह मॉड्यूल दस्तावेज में लिखा:

ताज़ा = "अभिव्यक्ति" - अभिव्यक्ति है, जो अगर यह सही का आकलन, एक नक्शा ताज़ा ट्रिगर किया जाएगा। उपयोगी जब नक्शा प्रारंभ में छिपा हुआ है।

+0

यह जानकर, अगर नक्शा प्रारंभ में छिपा हुआ है तो मैं जावास्क्रिप्ट के माध्यम से कैसे जांचूं? – gerl

2

सिर्फ जोड़ें:

$ scope.render = true

और जोड़ने एनजी-अगर = अपने अपने नक्शे नियंत्रण करने के लिए "प्रस्तुत करना", इस तरह:

<ui-gmap-google-map ng-if="$parent.render" center="map.center" zoom="map.zoom"> 
     <marker coords="map.center"></marker> 
    </ui-gmap-google-map> 
1

समस्या का जवाब यहां है https://github.com/allenhwkim/angularjs-google-maps/issues/88

आप की तरह इस समस्या से बचने के लिए इसे मैन्युअल रूप से केंद्र के लिए की जरूरत है निम्नलिखित,

अपने js में नियंत्रक

$scope.$on('mapInitialized', function (event, map) 
{ 
    window.setTimeout(function() { 
     window.google.maps.event.trigger(map, 'resize'); 
     map.setCenter(new google.maps.LatLng(38,-98)); 
    }, 100) 
}); 

और आपके एचटीएमएल

<ng-map ng-if="subView=='map'" center="38,-98" zoom="5"></ng-map> 
संबंधित मुद्दे